这是开始学习设计模式的第一步,也是相对简单的一个设计模式,简单工厂设计模式。

简单工厂就是将业务进行封装,减少代码之间的耦合度,使代码更易于扩展和维护。

以下是简单工厂设计模式的图解:

 

解释:封装一个简单工厂,然后通过调用该简单工厂中封装的对象,进行相应的传参,已达到调用指定父类中的子类的调用方法。这是引用到了C#中的李氏转换原则。

这是我自己的见解,也是初次接触可能不是很正确,下面附上专业的解释:

【引用:】简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

下面通过贴代码进行对应的学习:

(我这里是通过练习一个计算机的面向对象设计)

1、 先建立父类  

//父类
    public class Option
    {
        private double number_01;
        public double Number_01 { get; set; }       //第一个数

        private double number_02;
        public double Number_02 { get; set; }     //第二个数

        public virtual double GetResult()       //这是一个抽象的方法,用来被之类重写
        {
            double result = 0;
            return result;
        }
    }

2、创建工厂中的对象:(我这里是用了计算器的例子,就创建4个   + – * /)

    //加号类:
    public class AddOption:Option
    {
        public override double GetResult()
        {
            double result = 0;
            result = Number_01 + Number_02;
            return result;
        }
    }

    //减号类:
    public class SubOption:Option
    {
        public override double GetResult()
        {
            double result = 0;
            result = Number_01 – Number_02;
            return result;
        }
    }

    //乘号类:
    public class MultiplyOption:Option
    {
        public override double GetResult()
        {
            double result = 0;
            result = Number_01 * Number_02;
            return result;
        }
    }

    //除号类:
    public class DivideOption:Option
    {
        public override double GetResult()
        {
            double result = 0;
            if (Number_02 == 0)
                throw new Exception(“除数不能为0”);
            result = Number_01 / Number_02;           
            return result;
        }
    }

3、然后是创建简单工厂的核心,简单工厂类:

    public class OptionFactory
    {
        public static Option CreateOption(string option)
        {
            Option oper = null;
            switch (option)
            {
                case “+”:
                    oper = new AddOption();
                    break;
                case “-“:
                    oper = new SubOption();
                    break;
                case “*”:
                    oper = new MultiplyOption();
                    break;
                case “/”:
                    oper = new DivideOption();
                    break;
            }

            return oper;
        }
    }

4、到这一步,简单工厂就已经完成了,接下来就是调用了,下面简单的调用下,理解下用法:

        static void Main(string[] args)
        {
            Option oper;
            oper = OptionFactory.CreateOption(“+”);
            oper.Number_01 = 10;
            oper.Number_02 = 25;
            double result = oper.GetResult();
            Console.WriteLine(  result);
            Console.ReadLine();
        }

 

在这里帮上面的代码花了一个简单的解释图:

5、总结:简单工厂设计模式是比较基础的,同时也是用的相对较多的,希望我的学习可以帮到大家,如果代码中有错误也请大佬批评指出。

 

版权声明:本文为zhh19981104原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/zhh19981104/p/7941756.html