PHP 實踐 mix-in 概念 - MixableClass

edited 十月 2013 in 進階PHP討論
我實作了一個混成類別,這類別可以:

第一、個體可以動態增刪方法,且不影嚮其他個體。

我可以將某類別的實例視為獨立個體,僅為此個體增添方法,而不經類別關係影嚮其他同類或衍生類別之個體。舉例而言,當我配置了個體 $x 之後,我可以只為 $x 增加 foo 方法。而其他個體不論是否與 $x 同類,皆不會自動具有 foo 方法。

第二、以抽象化方法混成新的類別。

可用「與特定類別無關的抽象化方法」混成新的類別,且混成類別的特徵仍然要與一般類別相同。

1. 混成基礎類別的方法可為衍生類別所繼承。若我以 foo 方法混成了 MyClass 類,則繼承 MyClass 類之 MyClass2 類也會具有 foo 方法。

2. 這些混成類別可以隨時增刪方法,且動態增刪之方法亦須依繼承原則運作。 若我將 foobar 方法動態加入 MyClass2 類,不僅所有已配置之 MyClass2 實例將立即具有 foobar 方法,連其衍生類別 MyClass3 之實例也將依繼承原則而具有 foobar 方法。

3. 遵循子承父、父不承子之繼承原則。當我動態加入 foobar 方法至 MyClass2 類後,衍生類別 MyClass3 將繼承 foobar 方法,但基礎類別 MyClass 不會繼承 foobar 。


繼續閱讀全文:
PHP 實踐 mix-in 概念 - MixableClass

各位來討論一下什麼 case 用得著吧。

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2504
Sign In or Register to comment.