C#设计模式03——简单工厂的写法

抽象产品角色

    //鼠标抽象类
    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("生产了一个联想鼠标");
        }
    }

工厂角色

    public  class MouseFachtory
   {
        private Mouse mouse = null;
        public Mouse CreateMouse(string brand)
        {
          
            switch (brand)
            {
                case "dell":
                    mouse=new DellMouse();
                    break;
                case "hp":
                    mouse = new HPMouse();
                    break;
                case "lenovo":
                    mouse = new LenovoMouse();
                    break;
                default:
                    break;
            }
            return mouse;
        }
   }

运行测试

                MouseFachtory mouseFachtory = new MouseFachtory();
                var mouse1 = mouseFachtory.CreateMouse("dell");
                var mouse2 = mouseFachtory.CreateMouse("dell");
                var mouse3 = mouseFachtory.CreateMouse("dell");
                var mouse4 = mouseFachtory.CreateMouse("hp");
                var mouse5 = mouseFachtory.CreateMouse("hp");
                var mouse6 = mouseFachtory.CreateMouse("lenovo");
                mouse1.Print();
                mouse2.Print();
                mouse3.Print();
                mouse4.Print();
                mouse5.Print();
                mouse6.Print();

!

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