一、引言

  上一篇介绍了最基本的简单工厂模式,其中提到:简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,如此会造成简单工厂的实现逻辑过于复杂,本文介绍的工厂模式可以有效的解决此问题。

 

  二、定义:

  工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

  工厂模式实现时,客户端需要决定实例化哪一个工厂类实现运算类,选择判断的问题还是存在的,即:工厂方法把简单工厂的内部逻辑判断转移到了客户端来进行。如果需要增加功能,则修改客户端。

 

  三、UML图

  角色: 

  抽象工厂Creator:声明工厂方法,返回一个产品。 

  具体工厂角色ConcreteCreator:实现生成具体产品的方法,返回一个具体产品。

  抽象产品角色Product:上述所有类的父类或者是接口。

  具体产品角色Concrete Product:由工厂类创建出来的具体的产品实例。

 

  UML图:

  设计模式(2)---工厂模式

  四、举例说明:

  在简单工厂模式中用实现加减乘除的实例进行具体说明,本节将继续使用此例说明工厂模式。

  

  抽象产品:  

public class Operation
    {
        private double numberA = 0;
        private double numberB = 0;

        public double NumberA
        {
            get { return numberA; }
            set { numberA = value; }
        }

        public double NumberB
        {
            get { return numberB; }
            set { numberB = value; }
        }

        public virtual double GetResult()
        {
            double result = 0;
            return result;
        }
    }
View Code

相关文章: