C++设计模式之工厂模式

来源:互联网 发布:mac 无线鼠标 编辑:程序博客网 时间:2024/06/05 17:45

工厂模式

主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。
优点 : 适用于不同情况创建不同的类时
不足:客户端必须要知道基类和工厂类,耦合性差

#include<stdio.h>#include<string.h>class Oper{    double a;    double b;public:    void SetA(double _x) {a = _x;}    void SetB(double _y) {b = _y;}    double GetA(){return a;}    double GetB(){return b;}    virtual double GetResult(){return 0;}};class Add : public Oper{public:    double GetResult(){return (GetA()+GetB());}};class Sub : public Oper{public:    double GetResult(){return (GetA()-GetB());}};class Fac{public:    static Oper * CreateOper(char opers);};Oper * Fac::CreateOper(char opers){        Oper *oper;        switch(opers)        {            case '+': oper = new Add();break;            case '-': oper = new Sub();break;        }        return oper;}int main(){    double a = 10;    double b = 10;    Oper * p = Fac::CreateOper('+');    p->SetA(a);    p->SetB(b);    printf("--------------%f\r\n",p->GetResult());    return 0;}
0 0
原创粉丝点击