Original geschrieben von jccTeq
beim Remoting zum Beispiel wendet man das Prinzip der Interfaces gerne an, um den ungeschützten Code vor dem Benutzer quasi zu verstecken. Dabei wird eine DLL erstellt, die nur das Interface beinhaltet und die eigentliche Funktionalität nachher im Server selbst (die DLL, die der Host aufruft, welche geschützt auf dem Server-System liegt) implementiert.
Wer das Client -> Host -> Server System von .NET (Remoting genannt) nicht kennt, kurzer Versuch der Einführung:
Der Kunde erhält vom Entwickler ein Programm (den Client) und eine DLL, die dieser Client benötigt, um Zugriff auf die entsprechenden Methoden / Objekte zu bekommen. Die Methoden / Objekte werden auf dem Serversystem gehalten bzw. ausgeführt. Die Verbindung zum Serversystem stellt der Client per TCP/IP her und benötigt auf der Gegenstelle (auf dem Serversystem) eine Anwendung, die als Host bezeichnet wird und nichts anderes tut, als den eigentlichen Server in Form einer DLL dynamisch einzubinden, welche die eigentliche Funktionalität zur Verfügung stellt. Da der Client aber die Methoden und Objekte des Servers kennen muss, müsste die DLL, welche eben jenen Server darstellt, mit zum Kunden ausgeliefert werden. Der enthaltene Code wäre also vollkommen ungeschützt vor der Dekompilierung. Daher nutzt man die Technik der Interfaces, sodaß nur eben die Prototypen der benötigten Methoden zusammen mit dem Client an den Kunden übergeben werden.
Hoffe, das war jetzt nicht zu unverständlich. Dies ist nur ein mögliches Einsatzgebiet von Interfaces.