Mailinglisten-Archive |
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