Rolf B: Welches Entwurfsmuster steckt in Traits

Beitrag lesen

problematische Seite

Hallo pl,

eher nicht.

Traits an sich sind ein Konzept der OO, d.h. weniger als ein Pattern. Sie können von einzelnen Sprachen unterschiedlich implementiert werden.

PHP mischt den Trait in die Klasse ein, so dass die Trait-Methoden nachher wie native Methoden der Klasse genutzt werden können.

In JS kann man das im nachbilden, indem man Methoden aus einem Trait-Prototypen in ein Objekt oder einen Klassen-Prototypen[1] kopiert. Ich nehme an, dass das in Perl ähnlich geht.

In einer Sprache, wo Traits nicht Teil der Sprache sind und auch das Methodendictionary nicht zur Laufzeit manipulierbar ist, benötigt man Techniken wie Delegation und Injection, um sich zu behelfen. Das ist dann sprachspezifisch. Zum Pattern reichts es aber meiner Meinung nach immer noch nicht.

Rolf

--
sumpsi - posui - clusi

  1. Ja ich weiß, das ist auch nur ein Objekt. ↩︎