定義:組合模式定義了一個單根繼承體系,使具有截然不同職責的集合可以并肩工作。
一個軍隊的案例,
軍隊整合成員,輸出火力
軍隊進一步整合其他軍隊
更好的方式,支援新增,移除等等其他功能。
添加異常處理
點評:組合模式中的一切類都共享同一個父類型,可以輕松地在設計中添加新的組合對象或局部對象,而無需大範圍地修改代碼。
最終的效果,逐漸優化(完美):
更牛逼的組合處理,
點評:Unit 基礎,CompositeUnit複合中實作add與remove。軍隊繼承Composite,射手繼承Archer。這樣射手中就不會有多餘的add與remove方法了。
裝飾模式幫助我們改變具體元件的功能。
看例子
點評:不具有靈活性,我們不能同時獲得鑽石與被污染的土地的資金情況。
裝飾模式使用組合和委托而不是隻使用繼承來解決功能變化的問題。
看例子:
點評:這個模型具有擴充性。我們不需要建立DiamondPollutionPlains對象就可以建構一個鑽石被污染的對象。
一個更逼真的例子
點評:這裡有一種遞歸的感覺,一層調用一層。模式是牛人總結出來用于靈活的解決一些現實問題的。牛!給開發多一點思路。 本文轉自TBHacker部落格園部落格,原文連結:http://www.cnblogs.com/jiqing9006/p/5183162.html,如需轉載請自行聯系原作者