可能重複:
traits in php – any real world examples/best practices?PHP中Traits的可能使用場景是什麼?
在什麼樣的情況將一個用性狀的PHP?我對此有一個非常好的總體思路,但我似乎無法想象在我寫的應用程序中使用它們的方式,但這可能是因爲它當時不需要特徵。
一種情況我已經意識到,需要性狀:
- 活動。不要讓一個類實現觀察者模式並讓所有其他類繼承它,只要讓它成爲一個特徵並讓類想要觸發事件或訂閱使用特徵。例如,Yii框架通過在CComponent類中實現東西而不是使用Trait而做錯了。
基本上可以在類之間共享的功能,但可能沿着多個類層次結構傳播應該使用特徵。還有哪些場景可以利用Traits而不是事件系統?
PHP也有[interfaces](http://php.net) /manual/en/language.oop5.interfaces.php),與性狀分開......!如果你想將蘋果與蘋果進行比較,特徵就像來自Ruby等語言的mixin,或者像Self這樣的語言的特徵。 – deceze 2012-02-29 08:16:02
我不認爲接口與特質有很大關係。 – Tower 2012-02-29 08:17:04
我會在這裏留下http://compsci.ca/v3/viewtopic.php?t=14785 – 2012-02-29 08:52:16