設計模式之裝飾器模式

2022-07-29 04:51:15 字數 1061 閱讀 7399

裝飾器模式:允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有類的乙個包裝。這種模式建立乙個裝飾類,用來包裝原有的類。並在保證類方法簽名完整性的前提下,提供了額外的功能。

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

使用場景:擴充套件乙個類的功能,動態增加功能,動態撤銷。

如何使用:在不想增加很多子類的情況下擴充套件類。

關鍵**:1.component1類充當抽象角色,不應該具體實現。2.修飾類應用和繼承component類,具體擴充套件類重寫父類方法。

優點:裝飾類和被裝飾類可以獨立發展,不會相互耦合,裝飾器模式是繼承的乙個替代模式,裝飾模式可以動態擴充套件乙個實現類的功能。

缺點:多層裝飾比較複雜。

1

class

person29

public

person(string name)

1013

14public

virtual

void

show()15"

,m_name);17}

18}1920

class

finery:person

2128

29public

override

void

show()

3035}36

}3738class

tshirts : finery

3945}46

47class

bigtrouser : finery

4854}55

56class

sneaker : finery

5763}64

65static

void main(string

args)

66

設計模式之裝飾器模式

定義 decorator裝飾器,顧名思義,就是動態地給乙個物件新增一些額外的職責,就好比為房子進行裝修一樣。因此,裝飾器模式具有如下的特徵 它必須具有乙個裝飾的物件。它必須擁有與被裝飾物件相同的介面。它可以給被裝飾物件新增額外的功能。用一句話總結就是 保持介面,增強效能。裝飾器通過包裝乙個裝飾物件來...

設計模式之裝飾器模式

什麼是裝飾器模式 decorator 裝飾器模式的優點 裝飾器模式的缺點 示例 package com.pattern.decorator 抽象類,裝飾器的父類 author yjzhou public abstract class decorator implements component ov...

設計模式之裝飾器模式

裝飾模式 decorator 顧名思義,裝飾模式就是給乙個物件增加一些新的功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項,關係圖如下 source類是被裝飾類,decorator類是乙個裝飾類,可以為source類動態的新增一些功能,如下 1.public ...