裝飾模式:
動態地給乙個物件新增一些額外的職責。就增加功能來說,decorator模式相比生成子類更為靈活
適用性
1.在不影響其他物件的情況下,以動態、透明的方式給單個物件新增職責。
2.處理那些可以撤消(再不用使用的類或方法)的職責。
3.當不能採用生成子類的方法進行擴充時。
參與者
1.component
定義乙個物件介面,可以給這些物件動態地新增職責。
2.concretecomponent
定義乙個物件,可以給這個物件新增一些職責。
3.decorator
維持乙個指向component物件的指標,並定義乙個與component介面一致的介面。
4.concretedecorator
向元件新增職責
**如下↓↓
1.建立一person介面
public inte***ce person
2.建立具體的person
public class man implements person
}
3.建立裝飾者
public abstract class decorator implements person
public void setperson(person person)
@override
public void eat()
}
4.建立具體的裝飾者繼承decorator
public class mandecoratora extends decorator
public void reeat()
}
public class mandecoratorb extends decorator
}
5.test
public static void main(string args)
}
6.結果
man在用手吃飯(這是他本身特性)
他進化了—在用勺子吃飯(相當於在原有的基礎上增加功能)
mandecoratora類(同上)
mandecoratorb類(同上)
Java 裝飾模式
動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。盜圖 component是定義了乙個物件介面,可以誒這些uixiang動態新增職責。concretecomponent是定義了乙個具體物件,也可以給這個物件新增一些職責,decorator,裝飾抽象類,繼承了compon...
java與模式 裝飾模式
第四個設計模式 裝飾模式 裝飾模式是對物件功能增強時,平時使用繼承的一種替代方案 一 uml示意圖 二 組成部分 1.抽象構件 原始的功能介面 2.具體構件 具體的原始功能類 3.裝飾角色 持有具體構件類的物件,以便執行原有功能 4.具體裝飾 具體擴充套件的功能在這裡 三 例子 使用裝飾模式來演示乙...
Java 設計模式 裝飾模式
看了大話設計模式此章節多遍才稍微有點理解,特此記錄。深入淺出,通俗易懂。情景 小菜要去見未來女友 嬌嬌,來個服裝打扮的設計。第一彈 客戶端 public static void main string args 問題來了,嬌嬌喜歡超人,小菜這次想穿的是超人,咋辦?直接修改小菜的類嗎?這就違背了開閉原...