裝飾器模式

2022-03-12 05:41:11 字數 1278 閱讀 3050

價值:在不改變物件原有行為的基礎上,增加新的行為和屬性。

裝飾器模式 uml圖:

**如下:

一、被裝飾類

#region 被裝飾類

public

abstract

class

person

public person(string name,int age=20

)

public

virtual

void

show()

,年齡:

",name,age));}}

//////

白人子類

/// public

class

whiteperson : person

public whiteperson(string

name)

: base

(name)

public

override

void

show()

", "

white

"));}}

#endregion

被裝飾類

二、裝飾類

#region 裝飾類

//////裝飾類

///1、繼承person,目的是在裝飾a後的a1,將a1傳遞給b,再裝飾為b1,不繼承的話,無法將a1傳遞給b

///2、引用person的目的,是為了將a1當做引數傳遞給b,否則無法傳遞

/// public

abstract

class

decorator:person

public

override

void

show()

}public

class

tshirtsdecorator : decorator

}public

class

bigtrousedecorator : decorator

}public

class

sneakersdecorator : decorator

}#endregion

裝飾類

三、外部呼叫,進行裝飾

class

program

}

外部進行裝飾

裝飾器模式

大話設計模式 裝飾器模式 為已有功能動態地新增更多功能,當系統需要新功能,向舊的類中新增新功能,裝飾了原有類的核心職責和行為,而不改變它們 就像包裝袋一樣,有 的包裝袋包裝之前裝好東西的包裝袋 ifndef clothes h define clothes h include using names...

裝飾器模式

裝飾器設計模式 對真實物件動態的新增功能 抽象元件 author zhangjianbin public inte ce icar 俱體構件物件 真實的物件 author zhangjianbin class car implements icar 裝飾器物件 author zhangjianbin...

裝飾器模式

一 概念 裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該 盡量使用物件組合,而不是物件繼承來擴...