Archiv für Design Pattern
9. April 2007 um 18:17 · Gehört zu Best-Of, Design Pattern, OOP, PHP 4
Ein vielversprechendes Standardmuster ist das Singleton Design Pattern. Es sorgt dafür, das in einer Applikation oder einem Framework immer nur ein und dieselbe Objektinstanz verwendet wird - das aber, so oft man möchte. Eine klassische Verwendung wäre etwa eine Datenbankverbindung. Es wird immer nur eine gleichzeitig benötigt, aber an mehreren Stellen.
Ein Vorteil, der sich auf den 1. Blick ergibt, ist die Performance: Das Objekt muss nur einmal initialisiert werden - eventuelle Datenbankverbindungen werden nur einmal zu Beginn aufgebaut. Auch eine unter Umständen aufwändige Parametrisierung muss nur einmal durchgeführt werden. Und zu guterletzt wird der RAM nicht mit redundaten Infos zugemüllt - was will man mehr als eine schlanke, effiziente Anwendung!?
Um ein stinknormales Objekt zu einem Singleton-Objekt zu machen, ist nur eine einzige Funktion notwendig: “GetInstance”. Wie sie heisst, ist eigentlich egal - als Quasistandard hat sich aber “GetInstance” durchgesetzt. Beim 1. Aufruf erzeugt diese statische Funktion ein neues Objekt und liefert eine Referenz auf dieses zurück.
Den kompletten Artikel lesen »
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
7. April 2007 um 13:28 · Gehört zu Design Pattern, OOP, PHP (Allgemein)
Okay, jetzt wird ein bisschen an der Oberfläche gekratzt. Ich möchte einen Quasi-Standard vorstellen, der viele Möglichkeiten eröffnet und trotzdem oft links liegen gelassen wird: Das Objekt-Objekt, oder die Mutter aller Objekte :)
Wer schon mal Windowsprogrammierung mit der MFC oder STL betrieben hat, kennt das Objekt-Objekt. Genauso gut sind diejenigen dran, die schon mit guten PHP Frameworks gearbeiten haben: Alle Klassen sind von einer Stammklasse abgeleitet, die absolut wertfrei ist.
Vielleicht sieht das der eine oder andere als Designfehler an, denn Klassen sollten ihre Eigenschaften und Methoden eigentlich nur an gleichartige oder artverwandte Klassen weitergeben. Wieso dann eine Mutterklasse für alles?
Den kompletten Artikel lesen »
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
20. März 2007 um 21:36 · Gehört zu Design Pattern, OOP, PHP (Allgemein)
Im ersten Teil dieser kleinen Serie hab ich einen Blick auf vererbte oder abstrakte Klassen geworfen - jetzt ist erst einmal der Callback-Stack dran. Ich denke, das ganze Thema in zwei Teilen abzufackeln, ist ein Ding der Unmöglichkeit. Dafür gibt es einfach zu viele Varianten. In den ersten beiden Teilen stelle ich mal die Basisvarianten vor, in Teil 3 und 4 gehe ich auf mögliche Erweiterungen ein.
Ich hatte bereits erwähnt, das ein Callback-Stack dem Observer-Muster sehr ähnelt. Wie funktioniert das Observer-Muster nun genau? Wer das gepeilt hat, schnallt auch schnell das Callback-Stack-Prinzip:
Den kompletten Artikel lesen »
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
17. März 2007 um 16:37 · Gehört zu Design Pattern, OOP, PHP (Allgemein)
Um eine Applikation schnell und einfach dynamisch um Funktionen zu erweitern kommen oft Hook- oder Callback-Funktionen zum Einsatz. Typo3 macht davon Gebrauch, die WordPress Entwickler lieben sie und auch bei Cake oder RubyOnRails kommen sie zum Einsatz.
Genau genommen sind Hook-Funktionen und Callback-Funktionen ein und das selbe. Sie werden aufgerufen, wenn eine bestimmte Aktion durchgeführt wird, wurde oder werden soll. Die zwei beliebtesten Typen von Hook-Funktionen sind folgende:
- Vererbte oder Abstrakte Funktionen: Eine gängige OOP Technik, bei der eine Funktion abstrakt oder mit einem Default-Verhalten definiert wird, das von einer Kind-Klasse übernommen oder überschrieben wird.
- Callback-Stack: Bei dieser Art registrieren sich Objekte bei einem Objekt, das den Callback-Funktionen-Stack verwaltet. Wird ein Ereignis ausgelöst, werden die zu dem Ereignis registrierten Objektfunktionen der Reihe nach aufgerufen.
Den kompletten Artikel lesen »
Teile und genieße
Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.