• 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 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
  • 相关阅读:
    bootstrap table中显示头行结构
    利用bootstrap的modal和tab制作的联动自定义UI
    oracle plsql练习题-考核题
    oracle pl/sql 几道基础的编程题
    洛谷 P1156 垃圾陷阱
    洛谷 3373 线段树练习
    JZOJ 5842
    JZOJ 5849 d
    JZOJ 4735. 最小圈
    JZOJ 4742. 单峰
  • 原文地址:https://www.cnblogs.com/for-easy-fast/p/14374143.html
Copyright © 2020-2023  润新知