zoukankan      html  css  js  c++  java
  • 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 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
  • 相关阅读:
    Java序列化的机制和原理
    范型练习
    Java范型
    Hadoop之HelloWorld
    IEnumerable和IEnumerator
    浅谈静态变量和类
    MVC中的Startup.Auth.cs、BundleConfig.cs、FilterConfig.cs和RouteConfig.cs
    "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。
    C#.NET的微信功能开发学习
    本地Fiddler传递XML格式数据,调试微信功能。
  • 原文地址:https://www.cnblogs.com/for-easy-fast/p/14374222.html
Copyright © 2011-2022 走看看