• C#设计模式05——抽象工厂的写法


    产品

    抽象产品一

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

    具体产品

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

    抽象产品二

        //键盘抽象类
        public abstract class Keybo
        {
            public abstract void Print();
        }

    具体产品

        //惠普键盘
        public class HpKeybo : Keybo
        {
            public override void Print()
            {
                Console.WriteLine("生产了一个惠普键盘!");
            }
        }
        //戴尔键盘类
        public class DellKeybo : Keybo
        {
            public override void Print()
            {
                Console.WriteLine("生产了一个戴尔键盘!");
            }
        }

    工厂

    抽象工厂

        /// <summary>
        /// Pc产品工厂抽象类
        /// </summary>
        public abstract class PcFactory
        {
            public abstract Mouse CreateMouse();
            public abstract Keybo CreateKeybo();
        }

    具体工厂

        //戴尔pc工厂
        public class DellPcFactroy : PcFactory
        {
            public override Keybo CreateKeybo()
            {
                return new DellKeybo();
            }
    
            public override Mouse CreateMouse()
            {
                return new DellMouse();
            }
        }
        //惠普pc工厂
        public class HpPcFactory : PcFactory
        {
            public override Mouse CreateMouse()
            {
                return new HPMouse();
            }
            public override Keybo CreateKeybo()
            {
                return new HpKeybo();
            }
    
        }

    运行测试

                    //生产一个戴尔鼠标
                    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 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
  • 相关阅读:
    《入门经典》——6.15
    《Linear Algebra and Its Application》-chaper1-行化简法解决线性方程组
    《算法实战策略》-chaper19-队列、栈和双端队列
    《Linear Algebra and Its Applications》-chaper1-向量方程、矩阵方程和线性方程组
    辛普森法则
    《训练指南》——6.15
    《入门经典》——6.21
    《算法问题实战策略》-chaper13-数值分析
    Scheme 中的 pair 和 list 简述
    C. Friends
  • 原文地址:https://www.cnblogs.com/for-easy-fast/p/14374295.html
Copyright © 2020-2023  润新知