Nathan Good, Senior Information Engineer bei IBM, hat fünf neue Entwurfsmuster für die PHP-Entwicklung veröffentlicht. Ausgehend von den vor knapp zwei Jahren veröffentlichen Design Patterns
- Factory Pattern, mit dem sich Objekte auf definierte Art und Weise erzeugen lassen.
- Singleton Pattern, mit dem sich globale Variablen beim Einsatz von Singleton-Objekten vermeiden lassen.
- Observer Pattern, mit dem sich andere Objekte beobachten lassen, um entsprechende Reaktionen zu bearbeiten. Kann helfen, eine zu enge Verzahnung einzelner Komponenten zu vermeiden, um später Änderungen am Code einfacher umsetzen zu können.
- Chain-of-Command Pattern, das eine Nachricht (ein Request, einen Befehl,...) durch eine Reihe von Routinen leitet.
- Strategy Pattern, bei dem Algorithmen aus ihren Klassen extrahiert werden, um sie so bei Bedarf leichter ersetzen zu können (ohne gleich die Klasse zu ersetzen).
hat er jetzt fünf neue Entwurfsmuster vorgestellt, die die Anwendungsentwicklung mit PHP deutlich erleichtern sollen. Zwei Vorteile der Anwendung solcher Muster stellt er dabei besonders heraus. Zum einen könne sie die Kommunikation im Team deutlich erleichtern, wenn man sich – anstatt über Klassen, Methoden und Schnittstellen zu unterhalten – gleich in Entwurfsmustern ausdrücken könne. Und zum anderen müsse man sich nicht mehr allzu viele Gedanken über das Design seines Codes machen, solange man nur das richtige Pattern gewählt habe.
Zu den von Nathan Good neu vorgestellten Entwurfsmustern gehören:
- Adapter Pattern: Hilft, den Typ eines Objektes sehr sauber und übersichtlich in einen anderen Objekttyp zu überführen.
- Iterator Pattern: Damit lassen sich neue Gegenstände, die man in einer Schleife verarbeiten möchte, zu einer solchen Schleife hinzufügen, ohne den entsprechenden Code selbst verändern zu müssen.
- Decorator Pattern: Eine schöne Sache, um neue Features zu bestehenden Konstruktionen hinzufügen zu können.
- Delegate Pattern: Damit lassen sich Verhaltensweisen, basierend auf bestimmten Kriterien, neu zuweisen.
- State Pattern: Ähnlich dem Command Pattern, wobei es hier einer Klasse erlaubt, ihr Verhalten zu ändern, wenn neue Umstände auftreten.
Der Beispielcode zu allen vorgestellten Entwurfsmustern steht dabei auch als ZIP-File zum Download bereit. Bei allen Vorteilen, den der Einsatz von Design Patterns aber auch bringen mag, weist Nathan Good auch darauf hin:
When you're holding a hammer, everything looks like a nail.
Trotz aller Begeisterung solle man schon darauf achten, wo man Entwurfsmuster einsetze. Es komme eben auch immer darauf an, was man eigentlich genau in seinem Code erreichen möchte.



