-
特點(diǎn):Decorator模式與Composite模式類(lèi)似,Composite模式是以容器結(jié)構(gòu)化毕箍、一致性管理為核心浪谴,存在一對(duì)多的關(guān)系,而Decorator模式有錦上添花之意害驹,只存在一對(duì)一的關(guān)系鞭呕。
比如蛋糕抹上奶油,就是奶油蛋糕宛官,再加上巧克力就是巧克力奶油蛋糕葫松,再插上蠟燭,就是生日蛋糕底洗,但他們本質(zhì)腋么,就是一個(gè)蛋糕。
繼承和委托的一致性:像類(lèi)似Decorator模式同時(shí)使用到繼承和委托亥揖,兩種實(shí)現(xiàn)方式同時(shí)體現(xiàn)了不同的一致性珊擂,就是因?yàn)檫@種一致性才有了各種巧妙的設(shè)計(jì)模式。
- 角色:
角色名稱(chēng) | 角色職責(zé) |
---|---|
Component | 定義基礎(chǔ)的核心功能API |
Concrete Component | 實(shí)現(xiàn)基礎(chǔ)核心功能API费变,通常被視為被裝飾物 |
Decorator(裝飾物) | 需要持有一個(gè)Component(被裝飾物)的實(shí)例 |
Concrete Decorator(具體裝飾物) | 繼承Decorator實(shí)現(xiàn)裝飾功能 |
-
角色關(guān)系:
Decorator.png 代碼示例:Decorator
以上文獻(xiàn)參考:《圖解設(shè)計(jì)模式》