风动破

导航

设计模式之装饰decorator

public class DecoratorMode
    {
        public DecoratorMode() 
        {
            //可以用工厂模式封装
            Car car = new  ESPDecorator(new CCSDecorator(new Car()));
            car.Description();
        }
    }
    public class Car {
        /// <summary>
        /// 装饰
        /// </summary>
        public  virtual void Description()
        {
            Console.WriteLine("my car");
        }   
    }
    /// <summary>
    /// ESP装饰者
    /// </summary>
    public class ESPDecorator : Car {
        private Car car;
        public ESPDecorator(Car car) {
            this.car = car;
        }
        public override void Description()
        {
            car.Description();
            Console.WriteLine("Add esp");
        }
    }
    /// <summary>
    /// 定速巡航装饰者
    /// </summary>
    public class CCSDecorator : Car
    {
        Car _car;
        public CCSDecorator(Car car)
        {
            _car = car;
        }
        public override void Description()
        {
            _car.Description();
            Console.WriteLine("Add CCS");
        }
    }

posted on 2015-05-04 10:41  风动破  阅读(96)  评论(0)    收藏  举报