Frage

Ich war gerade auf der Suche in den Quelltext eines bestehenden Projekts, die verwendet nHibernate und fand, dass es Schnittstellen für jede Entität Klassen erstellt. Z. B ICustomer Kunden Klasse. Ich frage mich, was der Vorteil dieses Musters sein kann als ICustomer enthält hauptsächlich die Eigenschaften und nur sehr wenige Methoden.

War es hilfreich?

Lösung

würde ich nicht sagen. Schnittstellen getrenntes Verhalten von der Implementierung, so dass dieser ohne sein kann Kunden der Schnittstelle.

zu beeinflussen ausgelagert

Ich habe keinen Bedarf an Schnittstellen sehen, ob Ihre Domain-Objekte werden nicht verschiedene Implementierungen erfordern. Nur sie einführen, wenn dynamische Proxy-Generierung oder Aspekte oder Ändern von Implementierungen notwendig sind.

Andere Tipps

Ich bin nicht mit den vorherigen Kommentaren anderer Meinung ... Obwohl, kombiniert mit Mustern wie Inversion of Control (IoC) und Dependency Injection macht es solche Schichten voneinander viel leichter zu isolieren. Dies vereinfacht die Unit Testing, Mocking und kann auch zu mehr lose gekoppelten Architekturen führen. Dies kann noch ohne Schnittstellen acheived werden, obwohl Sie sicher, dass Sie nicht Ihre Klassen und Make-Mitglieder machen müssen versiegeln virtuellen, so dass Sie dann noch verspotten können, erzeugen abhörbar Proxies, etc ... Und schließlich mit Hilfe von Schnittstellen zwingen Ihnen Annahmen zu einem Bezug fallen eine Umsetzung konkreter und sich stattdessen auf die von der Schnittstellendefinition dargestellt Vertrag konzentrieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top