设计模式(C#)

2020-09-27  本文已影响0人  喜欢海苔Girl

一:工厂模式

实现

/// <summary>
    /// 生产PC的工厂接口
    /// </summary>
    public interface PC
    {
        void Make();
    }
    /// <summary>
    /// 生产Phone的工厂接口
    /// </summary>
    public interface Phone
    {
        void Make();
    }
    /// <summary>
    /// 总工厂 (抽象工厂模式)
    /// </summary>
    public interface AbstractFactory
    {
        Phone MakePhone();
        PC MakePC();
    }

    /// <summary>
    /// 小米生产PC的工厂
    /// </summary>
    public class MIPc : PC
    {
        public MIPc()
        {
            this.Make();
        }
        public void Make()
        {
            Console.WriteLine("小米PC");
        }
    }
    /// <summary>
    /// 小米生产Phone的工厂
    /// </summary>
    public class MiPhone:Phone
    {
        public MiPhone()
        {
            this.Make();
        }
        public void Make()
        {
            Console.WriteLine("小米Phone");
        }
    }

    /// <summary>
    /// 苹果生产PC的工厂
    /// </summary>
    public class MAC : PC
    {
        public MAC()
        {
            this.Make();
        }
        public void Make()
        {
            Console.WriteLine("苹果PC");
        }
    }
    /// <summary>
    /// 苹果生产iPone的工厂
    /// </summary>
    public class iPhone : Phone
    {
        public iPhone()
        {
            this.Make();
        }
        public void Make()
        {
            Console.WriteLine("苹果iPhone");
        }
    }

    /// <summary>
    /// 小米工厂(生产手机pc)
    /// </summary>
    public class XiaoMiFactory : AbstractFactory
    {
        public PC MakePC()
        {
            return new MIPc();
        }

        public Phone MakePhone()
        {
            return new MiPhone();
        }
    }

    /// <summary>
    /// 苹果工厂(生产手机pc)
    /// </summary>
    public class AppleFactory : AbstractFactory
    {
        public PC MakePC()
        {
            return new MAC();
        }

        public Phone MakePhone()
        {
            return new iPhone();
        }
    }

二:观察者模式

/// <summary>
    /// 烧水壶类 (烧水壶烧水行为,烧水时温度计温度上升,用电量增加)
    /// </summary>
    public  class ShaoShuiHu
    {
        public delegate void ShaoShuiDele();
        public event ShaoShuiDele ShaoShuiEvt;

        public void BoilWater()
        {
            if (ShaoShuiEvt!=null)
            {
                Console.WriteLine("电水壶 开始烧水。。。。");
                ShaoShuiEvt();
            }
        }
    }
    /// <summary>
    /// 温度计类
    /// </summary>
    public class Thermometer
    {
        //升温
        public void ShengWen()
        {
            Console.WriteLine("温度正在升高!");
        }
    }
    /// <summary>
    /// 电表
    /// </summary>
    public class Meter
    {
        //用电
        public void UseElectric()
        {
            Console.WriteLine("正在用电,用电量正在增加");
        }
    }

原文链接https://www.runoob.com/design-pattern/design-pattern-tutorial.html

上一篇 下一篇

猜你喜欢

热点阅读