C#设计模式04——工厂方法的写法

抽象产品角色

    //鼠标抽象类
    public abstract class Mouse
    {
        public abstract void Print();
    }

具体产品角色

    //戴尔鼠标
    public class DellMouse : Mouse
    {
        public override void Print()
        {
            Console.WriteLine("生产了一个Dell鼠标");
        }
    }
    //惠普鼠标
    public class HPMouse : Mouse
    {
        public override void Print()
        {
            Console.WriteLine("生产了一个惠普鼠标");
        }
    }
    //联想鼠标
    public class LenovoMouse : Mouse
    {
        public override void Print()
        {
            Console.WriteLine("生产了一个联想鼠标");
        }
    }

抽象工厂角色

    /// <summary>
    ///  鼠标工厂抽象类
    /// </summary>
    public abstract  class MouseFactory
    {
        public abstract  Mouse CreateMouse();
    }

具体工厂角色

    //戴尔鼠标工厂
    public class DellMouseFactroy : MouseFactory
    {
        public override Mouse CreateMouse()
        {
            return new DellMouse();//在具体的工厂中实例化产品
        }
    }
    //惠普鼠标工厂
    public class HpMouseFactory : MouseFactory
    {
        public override Mouse CreateMouse()
        {
            return new HPMouse();//在具体的工厂中实例化产品
        }
    }
    /// <summary>
    /// 联想鼠标工厂
    /// </summary>
    public class LenovoMouseFactory : MouseFactory
    {
        public override Mouse CreateMouse()
        {
            return new LenovoMouse();//在具体的工厂中实例化产品
        }
    }

运行测试

                //生产一个戴尔鼠标
                MouseFactory dellMouseFactory = new DellMouseFactroy();
                _04工厂模式.Mouse dellMouse = dellMouseFactory.CreateMouse();
                dellMouse.Print();

                //生产一个惠普鼠标
                MouseFactory hpMouseFactory = new HpMouseFactory();
                _04工厂模式.Mouse hpMouse = hpMouseFactory.CreateMouse();
                hpMouse.Print();

                //生产一个联想鼠标
                LenovoMouseFactory lenovoMouseFactory = new LenovoMouseFactory ();
                _04工厂模式.Mouse lenovoMouse = lenovoMouseFactory.CreateMouse();
                lenovoMouse.Print();

!

  • 作       者 : 明志德道
  • 希     望: 如果内容对您有用,动动小手点个赞吧,您的支持就是我持续写作的动力!
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/for-easy-fast/p/14374222.html