(创建型模式)FACTORY——简单工厂模式

来源:互联网 发布:arr数组怎么转化成json 编辑:程序博客网 时间:2024/06/05 11:58

一、意图

     定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory使一个类的实例化延迟到其子类。(四人团)

    实际上: 工厂模式主要就是用于创建对象。新添加类时,不会影响以前的系统代码。

二、基本思想

   核心思想:是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。

     客户类和工厂类分开,消费者任何时候需要某种产品类对象,只需要向工厂类(有静态成员函数接收)提交参数和请求即可。消费者无需修改(直接用所有产品共同的父类指针指向)就可以接纳和使用新产品类的对象。

三、优缺点分析

GOOD: 适用于不同情况创建不同的类时

BAD:  客户端必须要知道基类和工厂类,耦合性差,而且当产品修改时,工厂类也要做相应修改(如:如何创建及如何向客户端提供)

四、UML实例图

clip_image002

注意点:(工厂类与基类为关联关系)

五、示例源码

   1: (工厂类与基类为关联关系)
   2: 例:
   3: //基类
   4: class COperation
   5: {
   6: public:
   7:     int m_nFirst;
   8:     int m_nSecond;
   9:     virtual double GetResult()
  10:     {
  11:         double dResult=0;
  12:         return dResult;
  13:     }
  14: };
  15: //加法
  16: class AddOperation : public COperation
  17: {
  18: public:
  19:     virtual double GetResult()
  20:     {
  21:         return m_nFirst+m_nSecond;
  22:     }
  23: };
  24: //减法
  25: class SubOperation : public COperation
  26: {
0 0
原创粉丝点击