Traits sind nicht zum Nachladen von Code vorgesehen.
Es gibt dennoch genügend Fälle wo auch ohnedessen Traits sinnvoll sind. In meinem Beispiel gänge das auch vorausschauend zu programmieren. Denn es steht bereits beim Klassenentwurf fest, daß die Klasse Forum wie die Klasse RSS eine Methode benutzt die in beiden Fällen identisch sind.
Ein solcher Fall ist im Grunde ein Fall für Vererbung, also derartige Methoden in derjenigen Klasse zu definieren von der beide der o.g. Klassen erben. Hinsichtlich dessen, es dennoch nicht so zu machen, ein paar Überlegungen:
- Die Basisklasse wird immer kompiliert, von daher definiert man in der Basisklasse nur Methoden die tatsächlich für jeden Programmablauf gebraucht werden.
- Methoden in Traits zu definieren hat den Vorteil, daß man bei Erweiterungen den Code der Basisklasse nicht ändern muss.
Allein aus diesen beiden Üerlegungen ergeben sich wichtige Konsequenzen für ein Framework von Skalierbarkeit über Performanze bis Kommerz.
Deswegen hab ichs hier auch nochmal aufgeschrieben.