1unitedpower: Welches Entwurfsmuster steckt in Traits

Beitrag lesen

problematische Seite

Hallo pl,

Traits als Solche kann man auch mit älteren Perl- und PHP- Versionen wo Traits nicht Bestandteil der Sprache sind bauen.

Ja. Sicher. Sag ich doch. Mit Delegation (um den Aufruf zur Trait-Methode zu delegieren) und Injektion (um dem Trait das nutzende Objekt verfügbar zu machen).

So wird es auch im Decorator-Pattern gemacht. Ein Nachteil im Vergleich zu einem statischen Trait ist, dass das Verhalten dynamisch hinzugefügt wird. Und ein Decorator kann auch nur auf öffentliche Methoden der Komponenten-Klasse zugreifen.