Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#9

AW: Was sind Interfaces und wie wendet man sie an? (brauche tut)

  Alt 27. Mai 2014, 06:16
Hsb ich das richtig verstanden???

Ein Interface ist dazu da, die Kommunikation zwischen Dlls und Exen (also Programmen) zugegeln???

Oder hab ich da was völlig falsch verstanden
Ein Interface ist dazu da, die Kommunikation zwischen unterschiedlichen Klassen zu regeln.
Das kann natürlich zwischen einer .exe und einer DLL passieren, aber auch zwischen Klassen innerhalb einer Exe (oder dll, egal) können sich über Interfaces ansprechen.

Die Idee dahinter ist, das viele unterschiedliche Klassen das gleiche Interface implementieren können.
Konkretes Beispiel: Du hast ein Interface "ILogger", das zum Loggen von Informationen gedacht ist, mit der Methoden "AddLine(message: string)".

Jede Deiner Klassen bekommt nun über den Konstruktor einen ILogger hineingegeben, und merkt sich diesen in einem Feld, und kann nun überall in jeder seiner Methoden mit logger.AddLine() Zeilen in ein Log hinzufügen - ohne das Deine Klasse eine direkte Abhänhigkeit auf das Logging-System besitzt.

Du kannst nun zum Beispiel einen FileLogger oder einen ConsoleLogger implementieren und darüber später entscheiden, ob nun auf die Konsole oder in eine Datei geloggt werden soll. Du kannst auch einen MultiLogger implementieren, der sich intern einen File- und einen Console-Logger hält und bei AddLine die Zeile auf alle internen ILogger verteilt.

Du bist also viel Flexibler wenn Du das Logging anpassen/erweitern willst ohne das Du jede einzelne Klasse die loggt anfassen musst.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat