設計模式筆記(四) 裝飾模式

2021-04-21 06:55:15 字數 1011 閱讀 2588

裝飾模式(decorator):裝飾模式是為已有功能動態的新增更多功能的一種方式。

using system;

namespace studesignmode.decorator

public abscustomer() 

public abscustomer(string name)

public

virtual

void show()

", this.name);}}

/// 

/// 人

/// 

public

class person:abscustomer

}/// 

/// 貓

/// 

public

class cat : abscustomer

}/// 

/// 服飾

/// 

class finery :abscustomer

public

override

void show()}}

/// 

/// t恤

/// 

class tshirts : finery

}/// 

/// 垮褲

/// 

class bigtrouser : finery

}/// 

/// 破球鞋

/// 

class brokenshoes : finery

}/// 

/// 西裝

/// 

class suit : finery

}/// 

/// 領帶

/// 

class tie : finery

}/// 

/// 皮鞋

/// 

class leathershoes : finery

}class clienttest}}

設計模式(四) 裝飾模式

裝飾模式又被稱為包裝模式。通過對客戶端透明的方式來拓展物件的功能,是繼承關係的一種替代方案 假設,現在要給qq秀裡的人物設計裝扮衣服,每個人可按自己不同的喜好搭配不同的衣服。先建立person類,它裡面有乙個show 展示 也是穿衣服 的方法 public class person public p...

設計模式系列(四) 裝飾模式

動態的為乙個物件的某些職責新增一些額外的功能,與通過繼承來獲得新功能相比,decorator 更加的靈活 試想一下,如果沒有 decorator,轉而使用繼承,每當想要為乙個物件新增某個功能時,我們就需要生成乙個子類。當需要這些功能的組合時,就要生成更多的具有組合功能的子類。這會產生兩個問題 1.類...

設計模式(四) 裝飾器模式

裝飾器模式 動態的將責任附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。意圖 將乙個介面轉換為另乙個介面 設計原則 開閉原則 對類的擴充套件開放,對修改關閉 裝飾器模式設計要點 1.裝飾者和被裝飾物件有相同的超型別 2.可以用乙個或者多個裝飾者去包裝乙個物件 3.裝飾者可以在所...