結構型模式 裝飾者模式

2021-09-27 11:01:31 字數 1184 閱讀 9800

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

1.在不影響其他物件的情況下,以動態、透明的方式給單個物件新增職責。

2.處理那些可以撤消的職責。

3.當不能採用生成子類的方法進行擴充時。

1.component

定義乙個物件介面,可以給這些物件動態地新增職責。

2.concretecomponent

定義乙個物件,可以給這個物件新增一些職責。

3.decorator

維持乙個指向component物件的指標,並定義乙個與component介面一致的介面。

4.concretedecorator

向元件新增職責。

裝飾者模式

1.component

public inte***ce person
2.concretecomponent
public class man implements person 

}

3.decorator
public abstract class decorator implements person 

public void eat()

}

4.concretedecorator
public class mandecoratora extends decorator 

public void reeat()

}

public class mandecoratorb extends decorator 

}

5.test
public class test 

}

5.執行結果
男人在吃

再吃一頓飯

mandecoratora類

***************

mandecoratorb類

結構型模式 裝飾者模式

總結解決乙個問題 裝飾者模式 program ade someproblem author cade franklin create 2019 12 28 28 19 public abstract class drink string getdesc abstract float cost 接下來...

裝飾者模式 結構型模式

文章優先發表在個人部落格 我們現在有乙個賣咖啡的需求。我們有咖啡,我們也有配料 巧克力 牛奶 現在我們要設計乙個程式計算使用者這杯咖啡的 咖啡 配料 我們把每種組合都列舉出來。比如 咖啡 巧克力 咖啡 雙份巧克力 咖啡 牛奶 這樣的確很簡單的就達到了我們的需求但是有乙個問題就是產生很多的類,當我們新...

結構型模式 裝飾者設計模式

裝飾模式指的是在不必改變原類檔案和繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件,比如處理流。應用場景 需要擴充套件乙個類的功能,或給乙個類新增附加職責。優點就是耦合性低,重用性高 高內聚,低耦合 按照一般的方法,要麼就是分別修改各自的read方法,...