![]() |
Passe die Schnittstelle der Klasse an eine andere von den Klienten erwartete Schnittstelle an. Das Adaptermuster lässt Klassen zusammenarbeiten, die wegen inkompatibler Schnittstellen ansonsten nicht in der Lage wären. |
![]() Klassen- Adapter |
![]() Abb. 2.1.1 Ein Klassenadapter verwendet Mehrfachvererbung, um eine Schnittstelle an eine andere anzupassen |
![]() Objekt- Adapter |
![]() Abb. 2.1.2 Ein Objektadapter verwendet Objektkomposition |
![]() |
|
![]() |
Verwenden sie das Adaptermuster, wenn
|
![]() |
Entkopple eine Abstraktion von ihrer Implementierung, so dass beide unabhängig voneinander varriert werden können. |
![]() |
![]() Abb. 2.2 Brücke |
![]() |
|
![]() |
Verwenden sie das Brückenmuster, wenn
|
![]() |
Erweitere ein Objekt dynamisch um Zuständigkeiten. Dekorierer bilden eine flexible Alternative zur Unterklassenbildung, um die Funktionalität der Klasse zu erweitern. |
![]() |
![]() Abb. 2.3 Dekorierer |
![]() |
|
![]() |
Verwenden sie das Dekorierermuster,
|
![]() |
Biete eine einheitliche Schnittstelle zu einer Menge von Schnittstellen eines Subsystems. Die Fassadenklasse definiert eine abstrakte Schnittstelle, welche die Benutzung des Subsystems vereinfacht. |
![]() |
![]() Abb. 2.4 Fassade |
![]() |
|
![]() |
Verwenden sie das Fassadenmuster, wenn
|
![]() |
Nutze Objekte kleinster Granularität gemeinsam, um große Mengen von ihnen effizient verwenden zu können. |
![]() Struktur: |
![]() Abb. 2.5.1 Klassenstruktur des Fliegengewichts |
![]() Struktur: |
![]() Abb. 2.5.2 Objektstruktur des Fliegengewichts |
![]() |
|
![]() |
Der durch die Verwendung des Fliegengewichtsmusters erzielbare Gewinn hängt stark von den
Randbedingungen seines Einsatzes ab. Wenden Sie das Fliegengewichtmuster nur an, wenn alle folgenden
Bedingungen zutreffen:
|
![]() |
Füge Objekte zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren. Das Kompositionsmuster ermöglicht es Klienten, sowohl einzelne Objekte als auch Kompositionen von Objekten einheitlich zu behandeln. |
![]() |
![]() Abb. 2.6 Kompositum |
![]() |
|
![]() |
Verwenden Sie das Kompositionsmuster, wenn
|
![]() |
Kontrolliere den Zugriff auf ein Objekt mit Hilfe eines vorgelagerten Stellvertreterobjekts. |
![]() |
![]() Abb. 2.7 Proxy |
![]() |
|
![]() |
Das Proxymuster ist anwendbar, sobald es den Bedarf nach einer anpassungsfähigeren und
intelligenteren Referenz auf ein Objekt als einen einfachen Zeiger gibt. Es folgen einige verbreitete Situationen,
in denen das Proxymuster anwendbar ist:
|
Summarized by: Dipl.-Ing. (univ.) Dipl.-Ing. (FH) Ralf Isken
Only for private use.
Source: Entwurfsmuster; Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides; Addison-Wesley; 1996
1 | James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, MA, 1992 (zurück) |