简单工厂模式

1】什么是简单工厂模式?

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

理解:根据条件生成不同的实例。利用多态的特性,调用同名方法,不同的实例将得到不同的结果。

【2】代码示例如下:

代码如下:
#include <iostream>
#include <string>
using namespace std;

/*
 * 运算基类
 */
class Operation
{
public:
    double numberA;
    double numberB;
public:
    virtual double  getResult()
    {
        return 0;
    }
};

/*
 * 加法运算子类
 */
class addOperation : public Operation
{
    double getResult()
    {
        return numberA + numberB;
    }
};

 /*
  * 减法运算子类
  */
class subOperation : public Operation
{
    double getResult()
    {
        return numberA - numberB;
    }
};

 /*
  * 乘法运算子类
  */
class mulOperation : public Operation
{
    double getResult()
    {
        return numberA * numberB;
    }
};

 /*
  * 除法运算子类
  */
class divOperation : public Operation
{
    double getResult()
    {
        return numberA / numberB;
    }
};

 /*
  * 简单构建工厂
  */
class operFactory
{
public:
    static Operation *createOperation(char c)
    {
        switch (c)
        {
        case '+':
            return new addOperation;
            break;
        case '-':
            return new subOperation;
            break;
        case '*':
            return new mulOperation;
            break;
        case '/':
            return new divOperation;
            break;
        default:
            break;
        }
    }
};

 /*
  * 客户端应用示例
  */
void main()
{
    Operation *oper = operFactory::createOperation('+');
    oper->numberA = 9;
    oper->numberB = 99;
    cout << oper->getResult() << endl;
}
原文地址:https://www.cnblogs.com/leijiangtao/p/4534667.html