今天 Teddy 有點累,談點簡單一點的主題:『Design Patterns 的分類』。
鄉民甲:我知道,就是 Creational, Structural, 和 Behavioral 這三類的啦。
全錯。如果是這三類,鄉民自己看 GoF 的書就好了,用不著 Teddy 出馬。Teddy 要介紹的這三類,是出自於 Wolfgang Pree 所撰寫的 Design Patterns for Object-Oriented Software Development 這本書中第 98 頁(沒看過吧,嘿嘿嘿)。
- Patterns relying on abstract coupling
- Patterns based on recursive structures
- Other patterns
『abstract coupling』。要 coupling,OK,但是只能有『抽象關係(精神外遇?)』,不能有
有準時收看 Teddy 部落格的鄉民們,有沒有發現,這就是『program to an interface, not an implementation』的例子啦。
第二類,recursive structures 有 Composite, Chain of Responsibility, Decorator。應該不用再多做解釋了,這一類的 patterns 就是有遞迴結構。
第三類,其他。ㄟ,通常分類到最後分不下去了都會跑出這一類。屬於這一類的有 Abstract Factory, Flyweight, Singleton, Template Method。
至於知道這些分類有什麼用?至少改天鄉民們想自創武功的時候,可以從『abstract coupling』和『recursive structures』作為出發點來思考,這總比 Creational, Structural, 和 Behavioral 分類要具體一點吧。
***
友藏內心獨白:還有另外一個用途就是可以拿來寫部落格啊。又混過一篇...safe。
沒有留言:
張貼留言