Samstag, 31. Mai 2014

Program to an Interface - Werkzeugunterstützung

"Program to an interface, not an implementation." Erstes Prinzip des objektorientierten Entwurfs, [GOF1995].
Bevor ich im nächsten Blogartikel zum Katalogeintrag dieses Prinzips gelange, möchte ich noch ein nützliches Prüfwerkzeug für Java-Entwickler vorstellen, das bei der Einhaltung des Prinzips wertvolle Hilfe leisten kann.

Während C# mittels der expliziten Interface-Implementierungen eine Möglichkeit bereitstellt, die Nutzung eines Interface-Typs zu erzwingen, da die betreffenden Methoden bei Nutzung des Implementierungs-Typs nicht aufgerufen werden können, steht für Java immerhin eine Prüfregel in CodePro AnalytiX zur Verfügung, mittels der die Nutzung des Interface-Typs statisch überprüft werden kann.

Die Prüfregel heißt "Declare as Interface" und befindet sich in der Kategorie "Coding Style". Die Regel hat eine Konfigurationsseite, die standardmäßig wie folgt aussieht:


Mittels "Add" können weitere Interfaces ergänzt werden. Für eine gegebene Anwendung können hier alle selbstdefinierten Interfaces ergänzt werden, deren Verwendung in den Aufrufern erzwungen werden soll. Bei einem Code Audit werden dann diejenigen Aufrufer als Verstöße gelistet, die an Stelle des Interface-Typs einen Implementierungs-Typ zur Deklaration verwenden.

Siehe auch

Alle Artikel der Serie "Program to an Interface ...":

Einführung
Kategorisierung von Interfaces
Totale 1:n-Interfaces
Totale 1:1-Interfaces
Freiwillig partielle Interfaces
Notwendig partielle Interfaces
Fazit und Gegenbeispiele
Interface oder abstrakte Klasse?
Werkzeugunterstützung
Das Prinzip
 

Quellen

[GOF1995] - Design Patterns - Elements of Reusable Software, E. Gamma, R. Helm, R. Johnson, J. Vlissides, (Addison‐Wesley, 1995)