美文网首页
简单工厂模式

简单工厂模式

作者: 张霸天 | 来源:发表于2017-03-02 11:43 被阅读0次

// lesson1

#include <stdio.h>
#include <iostream>


using namespace std;
class Operation {
protected:
    double _numberA;
    double _numberB;
    
public:
    
    virtual ~Operation(){};
    double getNumberA(){ return _numberA;};
    void setNumberA(double A){_numberA = A;};
    double getNumberB(){ return _numberB;};
    void setNumberB(double B){_numberB = B;};
    virtual double getResult(){return 0.0;};
};

class OperationAdd:public Operation {
public:
    double getResult(){
        double result = 0;
        result = _numberA + _numberB;
        return result;
    }
};

class OperationSub:public Operation {
public:
    double getResult(){
        double result = 0;
        result = _numberA - _numberB;
        return result;
    }
};

class OperationMulti:public Operation {
public:
    double getResult(){
        double result = 0;
        result = _numberA * _numberB;
        return result;
    }
};

class OperationDiv:public Operation {
public:
    double getResult()
    {
        if (_numberB == 0) {
            throw "_numberB can't be 0";
        }
        return _numberA / _numberB;
    }
};

class OperationFactory{
public:
    static Operation * createOperate(string operate){
        Operation * oper ;
        if (operate == "+") {
            oper =  new OperationAdd();
        } else if (operate == "-") {
            oper = new  OperationSub();
        } else if (operate == "*") {
            oper = new OperationMulti();
        } else if (operate == "/") {
            oper = new OperationDiv();
        }
        return oper;
    }
};


void testLesson1() {
    float f1 = 5;
    float f2 = 4;
    
    string op = "*";
    
    Operation * operation = OperationFactory::createOperate(op);
    operation->setNumberA(f1);
    operation->setNumberB(f2);
    float result = operation->getResult();
    
    cout<< result << endl;
}

比较重要概念:

聚合表示一种弱的“拥有关系”,就像大雁和雁群,
合成就是一种强的“拥有关系”,就像大雁和翅膀,

相关文章

  • [Android]三种工厂模式总结。

    Android中,工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一.简单工厂模式。 定义:简单工厂...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 设计模式2-工厂模式

    工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式 简单工厂模式 简单工厂模式,就是建立一个工厂类,对实现了同一...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • 设计模式-工厂模式

    一、工厂模式分类 简单工厂模式 工厂方法模式 抽象工厂模式 二、简单工厂模式 简单工厂就是讲需要new对象的那段代...

网友评论

      本文标题:简单工厂模式

      本文链接:https://www.haomeiwen.com/subject/dqmhgttx.html