Strukturmuster

Strukturmuster (englisch structural design patterns) bilden in der Softwareentwicklung Entwurfsmuster, die durch Herstellen von Beziehungen zwischen Entitäten den Entwurf der Software erleichtern.

Beispiele für Strukturmuster sind[1]

  • Adapter: adaptiert eine Schnittstelle für eine Klasse in eine andere, die der Client erwartet:
    • Adapter-Pipeline: Verwendet mehrere Adapter, um so den Code auszutesten.[2]
    • Nachrüstungsschnittstellenmuster (engl. retrofit interface pattern)[3][4]: Besteht aus einem Adapter, der gleichzeitig als eine neue Schnittstelle für mehrere Klassen verwendet wird.
  • Aggregat: Ist eine Version des Kompositum, die zusätzlich Methoden zur Gruppierung von abgeleiteten Klassen, sprich Nachkommen zur Verfügung stellt
  • Die Brücke: Entkoppelt eine Abstraktion und deren Implementation, sodass beide sich unabhängig voneinander weiterentwickeln können
    • Grabstein: Ein „Nachschlagsobjekt“, das den richtigen Ort des Objekts kennt.[5]
  • Dekorierer: Ermöglicht der Klasse zusätzliche Funktionalität während der Laufzeit hinzuzufügen, wobei durch Ableiten die Klassenanzahl exponentiell ansteigt.
  • Erweiterbarkeit: eine Art von Framework, das komplexen Code hinter einer vereinfachten Schnittstelle verbirgt
  • Fassade: Erzeugt eine vereinfachte Schnittstelle einer anderen Schnittstelle, um die Benutzung letzterer zu vereinfachen.
  • Fliegengewicht: Bei diesem Muster teilen sich eine große Anzahl von Objekten ein Objekt der allgemeinen Eigenschaften, um Sicherungsspeicher einzusparen
  • Kompositum: Eine Baumstruktur von Objekten, in der jedes Objekt dieselbe Schnittstelle verwendet.
  • Pipes und Filter: Ist eine Prozesskette, in der die Ausgabe von jedem Prozess die Eingabe des nächsten Prozesses ist.
  • Privatklassendaten (engl. private class data pattern): Schränkt den Zugriff des Accessor/Mutator ein.
  • Stellvertreter: Hier fungiert eine Klasse als eine Schnittstelle für etwas anderes.

Siehe auch

  • Erzeugungsmuster
  • Nebenläufigkeit
  • Verhaltensmuster
Commons: Strukturmuster – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides: Structural Patterns. In: GofPatterns. 30. November 2020, abgerufen am 30. November 2020 (englisch). 
  2. Adapter Pipeline. Cunningham & Cunningham, Inc., 31. Dezember 2010, abgerufen am 20. Juli 2012 (englisch). 
  3. Bobby Woolf: Retrofit Interface Pattern. Cunningham & Cunningham, Inc., 19. Juni 2002, abgerufen am 20. Juli 2012 (englisch). 
  4. Martin Zarate: External Polymorphism. Cunningham & Cunningham, Inc., 31. Dezember 2010, abgerufen am 20. Juli 2012 (englisch). 
  5. Tomb Stone. Cunningham & Cunningham, Inc., 17. Juni 2007, abgerufen am 20. Juli 2012 (englisch). 
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