码迷,mamicode.com
首页 > 移动开发 > 详细

手机--装饰者模式

时间:2016-08-05 15:16:58      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

 

    /* 
     * 装饰者
     * 装饰者与被装饰对象有相同的父类
     * 装饰者内包含被装饰者对象的引用
     * 
     * 组合替代继承来扩展对象行为,运行时根据需求动态扩展
     * 扩展开放,修改关闭。
     * */

    public class Phone { }

    public class IPhone : Phone
    {
        public IPhone() { Console.WriteLine("IPhone"); }
    }
    public class VIVO : Phone
    {
        public VIVO() { Console.WriteLine("VIVO"); }
    }

    public abstract class Decorator : Phone
    {
        public Decorator(Phone phone) { Decorate(); }
        public abstract void Decorate();
    }
    public class Pack : Decorator
    {
        public Pack(Phone phone) : base(phone) { }
        public override void Decorate() { Console.WriteLine("Pack"); }
    }
    public class Film : Decorator
    {
        public Film(Phone phone) : base(phone) { }
        public override void Decorate() { Console.WriteLine("Film"); }
    }

    static void Main(string[] args)
    {
        IPhone iphone = new IPhone();
        Pack packIphone = new Pack(iphone);
        Film filmIphone = new Film(iphone);
        Console.WriteLine("========================");
        Film filmVivo = new Film(new Pack(new VIVO()));
        Console.ReadLine();
    }

 

手机--装饰者模式

标签:

原文地址:http://www.cnblogs.com/HelloUnity/p/5741003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!