• 设计模式学习笔记——修饰模式(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
  • 相关阅读:
    公平锁,非公平锁,乐观锁,悲观锁
    需求分析
    需求的获取渠道
    php将中文字符串分割为数组
    面试题
    ecshop中错误
    应用上线前必须进行的10个QA测试
    资料1
    tp数据库配置
    Web开发思路
  • 原文地址:https://www.cnblogs.com/chuifeng/p/1916616.html
Copyright © 2020-2023  润新知