Interface klasse

guguli

Bekanntes Mitglied
Hallo zusammen,
ich habe eine klasse IntList und eine Interfaceklasse IntListVisitor. Nun möchte ich in der intList klasse eine Methode implementieren, die als übergebene Parameter von typ IntListVisitor bekommt.
Void acc(IntListVisitor visitor){}
Nun soll diese methode "im Sinne des Visitor-Patterns ein solches Objekt entgegenzunehmen." Leider ich verstehe nicht so ganz was die Methode machen soll. Kann mir einer das erklären??? THX
 

kaoZ

Top Contributor
Ich weiß nicht ob ich deinen Text richtig verstanden habe, aber die Methode erwartet ein "IntListVisitor" also eine Schnittstelle, demnach kannst du der Methode, jedes Objekt einer Klasse übergeben die das Interface "IntListVisitor" Implementiert, und damit ist die Methode nicht an einen bestimmten Objekttyp gebunden .

Nehmen wir an du hast 2 klassen:

- AlteListe

- NeueListe

und beide implementieren das Interface IntListVisitor,

dann kannst du deiner Methode entweder eine Instant der Klasse AlteListe oder halt eine Istanz der Klasse NeueListe übergeben, da beide das Interface IntListVisitor implementieren.
 
Zuletzt bearbeitet:

guguli

Bekanntes Mitglied
Hi danke erst mal für dir Antwort. Ja das weiss ich. aber ich verstehe nicht was die Methode machen soll...:) Ich muss da nach eine anderen Klasse implementieren, die die IntListVisitor implementiert :9 also so wie du gesagt hast. Diese Klasse soll dann mit der Methode accept() die summe einer Liste berechnen.

Wieder meine Frage, was soll die Methde aVoid acc(IntListVisitor visitor){} genau machen. In der beschreibung steht nur : "im Sinne des Visitor-Patterns ein solches Objekt entgegenzunehmen." Was genau soll in dieser Methode implementiert werden???

THX
 

kaoZ

Top Contributor
Nun soll diese methode "im Sinne des Visitor-Patterns ein solches Objekt entgegenzunehmen."

Steht doch schon hier ^^

Offizielle Definition des Patterns :

Das Visitor Pattern dient der Kapselung von Operationen, die es ausgeführt auf Elementen einer Objektstruktur ermöglichen, dass neue Operationen ohne Veränderung der betroffenen Elementklassen definiert werden.

Sprich kannst du damit über bereits bestehende Objekte z.B Iterieren ohne die bestehenden Konkreten Klassen zu ändern.

Deine Methode macht dann genau das , sie nimmt jedes Objekt einer Klasse entgegen welche das Interface implementiert, egal welcher art es ist, was die Methode in deinem Fall machen soll hattest du ja bereits beschrieben , sie Iteriert über die Elemente einer Liste und ermittelt so die Summe der enthaltenen Elemente.

[TIPP]Das Pattern wird oft für z.B Online Buchungen (Hotels) oder Virtuellen Reisebüros genutzt :)[/TIPP]

hier mal ein Beispiel von Wikipedia

Code:
Virtuelles Reisebüro[Bearbeiten]
Ein Reiseveranstalter bietet seinen Kunden verschiedene Busreisen, Ferienhäuser und Mietwagen an. Jedem Objekt sind eine Beschreibung und eine Preiskategorie für Sommer und Winter zugewiesen. Die Preise der Kategorien sind in einem Preismodul gespeichert. Bei Ferienhäusern sind darüber hinaus Bilder, bei Mietwagen technische Daten abgelegt. Sowohl die Klassen für Busreisen, Ferienhäuser und Mietwagen, als auch das Preismodul bieten eine Schnittstelle zum Empfang eines Besuchers. Das Preismodul ist außerhalb der Klassenhierarchie von Busreisen, Ferienhäusern und Mietwagen.
Ein Kunde kann sich nun eine Reise zusammenstellen. Fragt er dann nach dem Gesamtpreis, so besucht ein Besucher zunächst die interessierenden Objekte, fragt die jeweilige Kategorie ab. Für jede Kategorie verwaltet er einen lokalen Zähler. Zuletzt besucht er das Preismodul und berechnet auf Grund der dort abgelegten Preise und seiner lokal gesammelten Informationen den Gesamtpreis.
Entscheidet sich der Kunde, die Reise zu buchen, kann ein anderer Besucher eine Reisebestätigung erstellen. Dazu besucht er wieder die den Kunden interessierenden Objekte und das Preismodul. Sein lokaler Zustand besteht aus einem Dokument, das er gemäß den Informationen der Objekte gestaltet. Bei allen Objekten listet er zunächst die Beschreibung und die Preiskategorie auf, bei Mietwagen zusätzlich die technischen Daten. Beim Besuch des Preismoduls ergänzt er dann die einzelnen Beschreibungen um die konkreten Preise.
Beide Besucher übergreifen Klassenhierarchien, da sie sowohl auf der Klassenhierarchie der buchbaren Reiseelemente als auch auf dem Preismodul arbeiten.
 
Zuletzt bearbeitet:

guguli

Bekanntes Mitglied
Also das ist meine Klasse:

Java:
public class IntList {
	private final boolean empty; // ist diese Liste leer?
	private final int value; // das erste Element dieser Liste
	private final IntList rest; // die restliche Liste ohne das erste Element

	public IntList() { // erzeuge eine neue leere Liste
		empty = true;
		value = 0;
		rest = null;
	}

	private IntList(int elem, IntList rest) {
		this.empty = false;
		this.value = elem;
		this.rest = rest;
	}

	public boolean isEmpty() {
		return empty;
	}

	public int head() {
		return value;
	}

	public IntList tail() {
		return rest;
	}

	public IntList add(int elem) {
		return new IntList(elem, this);
	}

	@Override
	public String toString() {
		if (isEmpty()) {
			return "";
		} else {
			return "" + head() + " " + tail().toString();
		}
	}
	
	void accept(IntListVisitor visitor){
		while(!isEmpty()){
			
		}
	}
}
Ich weiss nicht wie ich jetzt über die Elemnete iterieren kann :( ... Ich meine ich würde for benutzen aber hab ja die Länge der Liste nicht :(??
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
P Vererbung Klasse erbt von abstrakter Klasse implementiert Interface Java Basics - Anfänger-Themen 2
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
B Interface NodeList wird als Klasse verwendet? Java Basics - Anfänger-Themen 8
U Interface für abgeleitete Klasse Java Basics - Anfänger-Themen 5
D OOP Zugriff auf eine Klasse aus einem Interface-Objekt Java Basics - Anfänger-Themen 7
propra Interface - abstrakte Klasse Java Basics - Anfänger-Themen 18
P Aus einer Klasse ein Interface machen? Java Basics - Anfänger-Themen 5
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
R Interface innerhalb einer Klasse definieren..? Java Basics - Anfänger-Themen 2
T Klasse implementiert Interface Java Basics - Anfänger-Themen 5
K Unterschied abstracte Klasse und Interface Java Basics - Anfänger-Themen 7
G typisierte Klasse und Interface Java Basics - Anfänger-Themen 2
G Interface oder Abstrakte Klasse? Java Basics - Anfänger-Themen 3
Acha Unterschied Interface - abstrakte Klasse Java Basics - Anfänger-Themen 4
B OOP: abstrakte klasse implementiert interface Java Basics - Anfänger-Themen 3
J Methode mit gleichem Namen in verebter Klasse und Interface Java Basics - Anfänger-Themen 5
S casten von Interface zu Klasse unterbinden Java Basics - Anfänger-Themen 15
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Abstrakt oder Interface Java Basics - Anfänger-Themen 3
Say public/default Interface Java Basics - Anfänger-Themen 9
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
D Interface Verständisfrage Java Basics - Anfänger-Themen 8
U Interface | constructor injection Java Basics - Anfänger-Themen 5
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
T Interface Map und Map.Entry Java Basics - Anfänger-Themen 4
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
I JSON und Interface Java Basics - Anfänger-Themen 3
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6
L OOP Interface Prinzip? Java Basics - Anfänger-Themen 6
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
A Frage zu Interface Java Basics - Anfänger-Themen 16
J Interface Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben