phpbar.de logo

Mailinglisten-Archive

[php] Factory Class

[php] Factory Class

Alexander Wagner wagner at globalpark.de
Mon Aug 18 15:46:49 CEST 2003


Bastian Haustein wrote:

>Meinst Du jetzt mit "Objektkompositionen" Template-Klassen?
>
Meinst Du Templates a la C++? Seit wann gibts die denn in PHP ;-)

Ich rede von Kompositionen von mehreren Objekten.

Beispiel.
Man hat ein Objekt $a, das irgendwelche Dinge tut. Diese Dinge kann es 
auch mitloggen.
Als Eigenschaft hat dieses Objekt ein weiteres Objekt, nennen wir es 
$logger.
$logger hat als einzige sichtbare Methode write().
Nun wird $a, während es Dinge tut, fröhlich per $logger->write() sachen 
mitloggen.

Was $logger macht interessiert $a hierbei aber gar nicht.
Es könnte manuell in ein Logfile geschrieben werden.
Ans syslog übergben.
In eine Datenbank geschrieben.
Oder einem armen Admin auf den Bildschirm gepopupt werden.

Wie sich die Objektkomposition (hier $a mit $logger als Unterobjekt) 
verhält, hängt davon ab, aus welchen Objekten sie zusammengesetzt ist, 
im Gegensatz zur Vererbung, wo das Verhalten nur von einer Klasse abhängt.

Objektkompositionen neigen dazu flexibler zu sein und 
wiederverwendbareren Code zu liefern.
Im

>Klassen-Quelltext einen Include bedingt zu plazieren halte ich für "dirty",
>wenn auch in speziellen Fällen pragmatisch.
>
Wenn eine Klasse etwas anderes benötigt, soll sie das ruhig 
include(_once)n, und wenn es mehrere Möglichkeiten gibt, wovon nur eine 
gebraucht wird, also etwas nur bei Bedarf geladen wird, darf dass auch 
in der Klasse stehen statt oben drüber.

Gesundheit
Wagner


php::bar PHP Wiki   -   Listenarchive