- Extension Interface
-
Das Extension Interface Design Pattern zeigt einen Weg auf, wie mittels Software Design und Software-Architektur Anwendungen strukturiert werden, damit diese resistent gegenüber Modifikation und Erweiterung sind. Aus diesem Grund kann man dieses Entwicklungsmuster den Struktur- bzw. Architekturmustern zuordnen.
Struktur des Extension Interface Patterns
Die Struktur des Design Pattern ist wie folgt aufgebaut.
- RootInterface
- Stellt allgemeine Funktionalität bereit, welches jedes Extension Interface bereitstellen muss. Die „getExtension“-Methode muss von jeder Komponente implementiert werden, damit jedes Extension Interface in der Lage ist, ein weiteres Extension Interface anzufordern und damit die Rolle zu wechseln.
- Extension Interface
- Das Extension Interface gruppiert die semantische Funktionalität und reduziert damit Abhängigkeiten. Es erbt vom RootInterface seine allgemeine Funktionalität. Seine Aufgabe ist die Rolle einer Kontextgruppe dem Client zur Verfügung zu stellen. Wichtig ist, dass die angebotenen Dienste nach außen gekapselt werden.
- Factory
- Mit der Klasse „Factory“ erzeugt man die passende Komponente zum angeforderten Interface. Dies erfolgt mit der „create“-Methode.
- Client
- Diese Klasse implementiert die Anwendungsfunktionalität, darunter versteht man, dass der Client Dienste verwendet, welche durch die Extension Interfaces bereit gestellt werden. Der Zugriff des Clients auf den Komponenten-Service erfolgt immer über das passende Extension Interface, niemals direkt auf die Komponente selbst.
- Component
- Die Klasse implementiert die Funktionalität des dazugehörigen Extension Interface bzw. der Interfaces, da sie mehr als ein Extension Interface implementieren kann. Dabei gibt sie bei Aufruf der „getExtension“-Methode die eindeutige (passende) Interface-Referenz zurück. Sie wird von einer zugehörigen Factory erstellt.
Literatur
- K. Eilebrecht, G. Starke: Patterns kompakt: Entwurfsmuster für effektive Software-Entwicklung. 3. Auflage, Spektrum Akademischer Verlag, 2010.
Weblinks
- Kacper Bak: The Extension Interface design pattern. (Seminararbeit, 6. Semester Diplominformatik, FH-Kempten, PDF]).
- Douglas C. Schmidt: Extension Interface. 1998.
Wikimedia Foundation.