C# 设计模式之 装饰模式

来源:互联网 发布:厦门网络大学 编辑:程序博客网 时间:2024/06/05 08:05

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DesignPytternDemo{    public abstract class Wear    {       public abstract void Show();    }    public abstract class BaseWear : Wear    {        protected Wear _wear;        protected BaseWear(Wear w)        {            this._wear = w;        }        public override void Show()        {            if (null != _wear)            {                _wear.Show();            }        }    }    public class CreateWear : Wear    {        public override void Show()        {            Console.WriteLine("base wear");        }    }    public class WearCloze : BaseWear    {        public WearCloze(Wear w)            : base(w)        {        }        public override void Show()        {            this._wear.Show();            Console.WriteLine("wear cloze");        }    }    public class WearThous : BaseWear    {        public WearThous(Wear w)            : base(w)        {        }        public override void Show()        {            this._wear.Show();            Console.WriteLine("wear thurous");        }    }    public class WearShoes : BaseWear    {        public WearShoes(Wear w)            : base(w)        {        }        public override void Show()        {            this._wear.Show();            Console.WriteLine("wear shoes");        }    }    public class WearCap : BaseWear    {        public WearCap(Wear w)            : base(w)        {        }        public override void Show()        {            this._wear.Show();            Console.WriteLine("wear cap");        }    }} static void Main(string[] args)        {            Wear w = new CreateWear();           // w.Show();            Wear w1 = new WearCap(w);           // w1.Show();            Wear w2 = new WearCloze(w1);           // w2.Show();            Wear w3 = new WearShoes(w2);            w3.Show();            Console.ReadLine();        }


原创粉丝点击