Extension Interface

Das Extension Interface Design Pattern zeigt einen Weg auf, wie mittels Softwaredesign und Softwarearchitektur Anwendungen strukturiert werden, damit diese modifizierbar und erweiterbar 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 bereitgestellt 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; 548 kB).
  • Douglas C. Schmidt: Extension Interface (PDF; 87 kB). 1998.
VD
Entwurfsmuster
Erzeugungsmuster

Abstrakte Fabrik | Erbauer | Fabrikmethode | Prototyp | Singleton | Multiton | Objektpool

Strukturmuster

Adapter | Brücke | Decorator | Fassade | Fliegengewicht | Kompositum | Stellvertreter

Verhaltensmuster

Beobachter | Besucher | Interpreter | Iterator | Kommando | Memento | Schablonenmethode | Strategie | Vermittler | Zustand | Zuständigkeitskette | Interceptor | Nullobjekt | Protokollstapel

Muster für objektrelationale Abbildung

Datentransferobjekt | Table Data Gateway | Row Data Gateway | Active Record | Unit of Work | Identity Map | Lazy Loading | Identity Field | Dependent Mapping | Embedded Value | Serialized LOB | Inheritance Mapper | Metadata Mapping | Query Object | Command-Query-Responsibility-Segregation

Nachrichtenübermittlungsmuster

Message | Command Message | Document Message | Event Message | Request-Reply | Return Address | Correlation Identifier | Message Sequence | Message Expiration | Format Indicator | Message Channel | Point-to-Point Channel | Publisher-Subscriber Channel | Datatype Channel | Invalid Message Channel | Dead Letter Channel | Guaranteed Delivery | Channel Adapter | Messaging Bridge | Message Bus | Pipes-and-Filters | Message Router | Content-based Router | Message Filter | Dynamic Router | Recipient List | Splitter | Aggregator | Resequencer | Composed Message Processor | Scatter-Gather | Routing Slip | Process Manager | Message Broker | Message Translator | Envelope Wrapper | Content Enricher | Content Filter | Claim Check | Normalizer | Canonical Data Model | Message Endpoint | Messaging Gateway | Messaging Mapper | Transactional Client | Polling Consumer | Event-driven Consumer | Competing Consumers | Message Dispatcher | Selective Consumer | Durable Subscriber | Idempotent Receiver | Service Activator | Control Bus | Detour | Wire Tap | Message History | Message Store | Smart Proxy | Test Message | Channel Purger

Andere

Application Controller | Business Delegate | Data Access Object | Dependency Injection | Extension Interface | Fluent Interface | Inversion of Control (IoC) | Lock | Model View Controller (MVC) | Model View Presenter (MVP) | Model View Update (MVU) | Model View ViewModel (MVVM) | Page Controller | Registry | Remote Facade | Repository | Service Locator | Session State | Table Module | Template View | Threadpool | Transaction Script | Transform View | Two-Step View | Value Object