工厂模式

来源:互联网 发布:数据科学家 编辑:程序博客网 时间:2024/06/05 14:36

1.简单工厂模式**:主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的 virtual 函数得到不同的结果。

#include<iostream>using namespace std;class Operation{public:    double numberA;    double numberB;    virtual double GetResult()    {        double result = 0;        return result;    }};class OperationAdd:public Operation{public:    double GetResult()    {        return numberA + numberB;    }};class OperationDec :public Operation{public:    double GetResult()    {        return numberA - numberB;    }};class OperationFactory{public:    static Operation * CreateFactory(char Operator)    {        Operation * oper = NULL;        switch(Operator)        {        case '+':            oper = new OperationAdd();                break;        case '-':            oper = new OperationDec();            break;        }        return oper;    }};int main(){    Operation * per=OperationFactory::CreateFactory('-');    per->numberA = 2;    per->numberB = 3;    cout << per->GetResult();}

假如需要添加一个新的操作符*,我们需要修改工厂类,这违反了开放封闭原则(类可以被扩展,但不能被修改),所以用到工厂方法模式。(以后再补)

原创粉丝点击