對(duì)象的結(jié)構(gòu)模式,又稱“部分-整體”模式。
合成模式將對(duì)象組織到樹(shù)結(jié)構(gòu)中,可以用來(lái)描述整體與部分的關(guān)系。合成模式可以使客戶端將單純?cè)嘏c復(fù)合元素同等對(duì)待。
適用場(chǎng)合:
1. 需要描述對(duì)象的部分和整體的等級(jí)結(jié)構(gòu)。
2. 需要客戶端忽略掉個(gè)體構(gòu)件和組合構(gòu)件的區(qū)別。客戶端必須平等對(duì)待所有的構(gòu)件,包括個(gè)體構(gòu)件和組合構(gòu)件。
優(yōu)點(diǎn):
1. 合成模式可以很容易地增加新種類的構(gòu)件。
2. 使用合成模式可以使客戶端變得很容易設(shè)計(jì),因?yàn)榭蛻舳瞬恍枰罉?gòu)件是樹(shù)葉構(gòu)件還是樹(shù)枝構(gòu)件。
缺點(diǎn):
1. 使用合成模式后,控制樹(shù)枝構(gòu)件的類型就不太容易。
2. 用繼承的方法來(lái)增加新的行為很困難。
透明式的合成模式:
1. com.cleversoft.designpatterns.transparentcomposite.Graphics.java:













2. com.cleversoft.designpatterns.transparentcomposite.Circle.java:






























3. com.cleversoft.designpatterns.transparentcomposite.Line.java:






























4. com.cleversoft.designpatterns.transparentcomposite.Rectangle.java:






























5. com.cleversoft.designpatterns.transparentcomposite.Picture.java:






































6. com.cleversoft.designpatterns.transparentcomposite.Client.java:
























安全式的合成模式:
1. com.cleversoft.designpatterns.safecomposite.Graphics.java:







2. com.cleversoft.designpatterns.safecomposite.Circle.java:












3. com.cleversoft.designpatterns.safecomposite.Line.java:












4. com.cleversoft.designpatterns.safecomposite.Rectangle.java:












5. com.cleversoft.designpatterns.safecomposite.Picture.java:







































6. com.cleversoft.designpatterns.safecomposite.Client.java:
























參考資料:
1. 《Java與模式》
2. http://terrylee.cnblogs.com/archive/2006/03/11/347919.html
|
|
歡迎大家訪問(wèn)我的個(gè)人網(wǎng)站 萌萌的IT人