裝飾模式(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.裝飾者可以在所...