吹风

导航

 

学习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
posted on 2010-12-25 11:45  吹风  阅读(305)  评论(0编辑  收藏  举报