OOP Interface Prinzip?

lam_tr

Top Contributor
Hallo zusammen,

irgendwie habe ich das Prinzip von Java Interfaces noch nicht verstanden.
Ich weiß zwar was Interfaces sind und wie es ausschaut wenn ich sie anwende,
aber für reine Anwendung, fehlt mir doch noch irgendwie Ideen oder Überblick.

Ich weiß anhand von einem Beispiel dass Observer Prinzip alle Listener regristriert, also eine Liste von dem implementierten Interface adde und dann kann ich gut über die Liste iterieren und das Interface-Methode aufrufen.

z.B.:

for(ISelectable selectable: selectablelist){
selectable.select(false);
}

Aber bei Services Implementierungen werden auch Interfaces verwendet. Aber wo werden sie registriert und verwendet?

Außerdem sorgt Inferfaces für Erweiterbarkeit (Plug-ins). Aber wie das funktioniert kapiere ich einfach nicht.

Wenn ich nach Interfaces Google, werden nur die allgemeinen Sachen beschrieben.

Ich hoff krieg hier eine antwort.

Vielen Dank!

Gruß lam
 
Hallo Klaus,

vielen Dank für die schnelle Antwort.

Lehnen wir mal an die Architektur von Services. Wenn ich auf dem Server das Interface IExportable mit write-Methode habe.
Kann ich dann auf dem Client z.B. ExcelFile und TxtFile von IExportable implementieren. Aber an welcher stelle registriere ExcelFile und TxtxFile. Server kennt diese zwei Typen nicht oder?

Irgendwie ist es schwierig mein Problem oder Nicht-Verständnis auszudrücken.

Gruß lam
 
Wenn du ein Interface IExportable mit der Methode write(...) hast, und dein ExcelFile und TxtFile implementieren das Interface, dann müssen beide Klassen die Methode write() des Interfaces implementieren. Für die Implementierung bist du selbst verantwortlich.

Dein Server ruft dann über das Interface IExportable die Methode write() auf, und entsprechend wird dann die write-Methode deiner Klasse aufgerufen, je nachdem, ob es Excel oder Txt ist.
 
Hallo Tom299,

Danke soweit komme ich noch mit, aber wo initialisiere ich die ExcelFile und TxtFile?
Die reine Implementierung liegt auf dem Client, d.h. nur der Client kennt sie. Also packe ich alle File-Formate wohin, damit ich herholen kann für FileDialogs etc.?

Und wieso kann ich die write Methode nicht auf dem Client aufrufen?

Viele Grüße
lam
 
Also wo die write-Methode liegt, hängt ja von deinen Wünschen und Anforderungen ab. Die Klassen könnten auch auf dem Server liegen und dieser bietet dir dann z.B. direkt nen Download zur csv oder txt Datei an.
Wenn du die write-Methode auf dem Client hast, mußt du halt die Daten vom Server in den Client holen und dort exportieren. Liegen die Klassen auf dem Server, mußt du die Daten nicht rüberschaufeln.
Ich dachte es ging dir nur grundsätzlich um die Verwendung von Interfaces ;-)
 
Hallo Tom299,

hast recht eigentlich geht es mir mehr schon um das Design.
Ich will halt wissen wie man Interfaces in einer Architektur verwendet.

Zum Beispiel das mit dem Listener habe ich verstanden. Aber es
gibt durchaus noch mehrere Wege.

Und genau sowas würd ich gerne erfahren.

Danke schön!

lam
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben