Java 裝飾模式

2021-08-03 10:51:58 字數 1628 閱讀 6402

動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。

盜圖(^_^)

component是定義了乙個物件介面,可以誒這些uixiang動態新增職責。concretecomponent是定義了乙個具體物件,也可以給這個物件新增一些職責,decorator,裝飾抽象類,繼承了component,從外類來擴充套件component類功能,component無需知道decorator的存在。

---------------component---------------------

public

abstract

class

component

---------------concretecomponent-------------

public

class

concretecomponent

extends

component

}---------------decrator-----------------------

abstract class decrator extends component

@override

public

void

operation()

}}---------------concretedecratora--------------

public

class

concretedecratora

extends

decrator

private

void

dereatea()

}---------------concretedecratorb--------------

public

class

concretedecratorb

extends

decrator

private

void

decorateb()

}---------------裝飾過程------------------------

concretecomponent component = new concretecomponent();

concretedecratora cona = new concretedecratora();

concretedecratorb conb = new concretedecratorb();

cona.setcomponent(component);

conb.setcomponent(cona);

conb.operation();

如果只有乙個concretecomponent類而沒有component類,那麼decorator類可以是concretecomponent的乙個子類。如果只有乙個concretedecorator,那麼沒有必要建立乙個單獨的decorator類,而可以把decorator和concretedecorator的責任合併成乙個類。

java 裝飾模式

裝飾模式 動態地給乙個物件新增一些額外的職責。就增加功能來說,decorator模式相比生成子類更為靈活 適用性 1.在不影響其他物件的情況下,以動態 透明的方式給單個物件新增職責。2.處理那些可以撤消 再不用使用的類或方法 的職責。3.當不能採用生成子類的方法進行擴充時。參與者 1.compone...

java與模式 裝飾模式

第四個設計模式 裝飾模式 裝飾模式是對物件功能增強時,平時使用繼承的一種替代方案 一 uml示意圖 二 組成部分 1.抽象構件 原始的功能介面 2.具體構件 具體的原始功能類 3.裝飾角色 持有具體構件類的物件,以便執行原有功能 4.具體裝飾 具體擴充套件的功能在這裡 三 例子 使用裝飾模式來演示乙...

Java 設計模式 裝飾模式

看了大話設計模式此章節多遍才稍微有點理解,特此記錄。深入淺出,通俗易懂。情景 小菜要去見未來女友 嬌嬌,來個服裝打扮的設計。第一彈 客戶端 public static void main string args 問題來了,嬌嬌喜歡超人,小菜這次想穿的是超人,咋辦?直接修改小菜的類嗎?這就違背了開閉原...