设计模式学习笔记——修饰模式(Decorator Pattern)

学习TerryLee的设计模式颇有感触,留下以下笔记以作日后参考。

代码
//--------------------------------------------------------
//修饰模式也是常用于类的扩展,这种方法可以使类的组合变得十分灵活。
//--------------------------------------------------------

#region 基础类

public interface IPerson
{ }

public class Man : IPerson
{ }

public class Women : IPerson
{ }

#endregion

//--------------------------------------------------------
//我们现在需要给男人和女人穿上衣服。
//怎么做?
//You can use Decorator Pattern.
//--------------------------------------------------------

#region 新增的类

public class ClothesWapper : IPerson
{
IPerson Person;

public ClothesWapper(IPerson person)
{
Person
= person;
}
}

public class Coat : ClothesWapper
{
public Coat(IPerson person)
:
base(person)
{ }
}

public class Trouser : ClothesWapper
{
public Trouser(IPerson person)
:
base(person)
{ }
}

#endregion

#region 客户端调用

public class App
{
public static void Main()
{
//给男人穿上外套
Man man = new Man();
ClothesWapper coatMan
= new Coat(man);

//给男人穿上裤子
ClothesWapper trouserMan = new Trouser(man);

//男人同时穿上外胎和裤子
ClothesWapper coatAndTrouserMan = new Trouser(coatMan);
}
}

#endregion
原文地址:https://www.cnblogs.com/chuifeng/p/1916616.html