java 裝飾模式

2021-09-22 05:31:47 字數 1239 閱讀 7236

裝飾模式:

動態地給乙個物件新增一些額外的職責。就增加功能來說,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 問題來了,嬌嬌喜歡超人,小菜這次想穿的是超人,咋辦?直接修改小菜的類嗎?這就違背了開閉原...