-->

Entwurfsmuster in PHP – Teil IV

von Matthias Kannengiesser


Strukturmuster befassen sich mit der Komposition von unterschiedlichen Objekten, um eine größere und flexiblere Struktur zu entwickeln, die leicht um neue Funktionen erweitert werden kann.

Pattern: Adapter

Ziel: Passt eine Schnittstelle an die vom Client erwartete Schnitt­stelle an. Objekte können an­dere Objekte nutzen, indem man ein Adapter-Objekt da­zwischenschaltet.

Auswirkungen: Ursprünglich nicht kompatible Klassen werden kompatibel. Die Zielklasse kann trotz unterschiedli­cher Nutzung unverändert bleiben. Schnittstellen werden entkoppelt. Die Wiederverwendbarkeit ist erhöht. Die Spezialisierung der adaptierten Klassen ist schwerer. Die Verwendung des Musters kann zu recht unterschiedlichem Aufwand führen.

Pattern: Bridge (Brücke)

Ziel: Entkoppelt eine Abstraktion von ihrer Implementierung, sodass beide unabhängig voneinander variiert werden können. Bildet eine Brücke zwischen zwei Klassenhierarchien.

Auswirkungen: Die Implementierung kann dynamisch ausgetauscht werden. Trennung von Interface- und Implementierungshierarchien.

Pattern: Composite (Kompositum)

Ziel: Fügt mehrere Objekte zu einer Baumstruktur zusammen, um Kompositionen von Objekten einheitlich zu behandeln.

Auswirkungen: Neue Komponenten können leicht eingefügt werden. Der Entwurf wird sehr schnell allgemein.

Pattern: Decorator (Dekorateur)

Ziel: Erweitert Objekte zur Laufzeit um neue Funktionalitäten.

Auswirkungen: Die Klassen werden schlanker. Das Muster schafft größere Flexibilität als der Einsatz von Vererbung. Die Anzahl der Klassen in einer Anwen­dung wird erhöht.

Pattern: Facade (Fassade)

Ziel: Bietet eine abstrakte Schnitt­stelle, die die Verwendung eines Subsystems vereinfacht.

Auswirkungen: Reduziert die Anzahl der Klassen, die vom Client verwendet werden müssen. Fördert lose Koppelung zwischen den Subsystemen und den Klassen, die diese nutzen.

Pattern: Flyweight (Fliegengewicht)

Ziel: Nutzt Gemeinsamkeiten von Objekten und lagert diese in zusätzliche Objekte aus, um eine große Anzahl von Objekten effi­zient verwenden zu können.

Auswirkungen: Führt zur Redundanzreduzierung in der Datenhaltung. Führt zu kompakten und speicher­sparenden Objekten.

Pattern: Proxy (Stellvertreter)

Ziel: Kontrolliert den Zugriff auf ein Objekt mithilfe eines Stellver­treters. Zugriff auf ein Objekt auf einem anderen Server (Remote-Proxy). Erzeugen des Objekts beim ers­ten Zugriff (virtueller Proxy). Durchführen von Verwaltungs­aufgaben (Schutz-Proxy).

Auswirkung: Führt Indirektion beim Zugriff auf Objekte ein.

Tipp: Sobald Sie mit den Entwurfsmustern dieser Gruppe vertraut sind, stehen Ihnen bereits die wich­tigsten Werkzeuge zur Verfügung, um durch Komposition eine flexible Architektur von unterschiedlichen Objekten zu erschaffen.

Dieser Abschnitt wurde dem Buch “PHP 5 – Objektorientierte Programmierung” von Matthias Kannengiesser entnommen, das im Franzis Verlag erschienen ist. Sie können es hier direkt bestellen.

Social Bookmarks: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • TwitThis
  • Facebook
  • Digg
  • del.icio.us
  • MisterWong
  • Google Bookmarks
  • Technorati
  • Y!GG

Post to Twitter

Artikel bewerten

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Weitere Artikel

Kommentare

  1. [...] der in Teil III und Teil IV dieser Reihe vorgestellten Erzeugungs- und Strukturmuster sind Sie in der Lage, effizient Objekte [...]

Kommentar schreiben