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.