C++设计模式:简单工厂模式
2017-06-18 16:59
429 查看
简单工厂模式:将业务逻辑与界面逻辑分开,实际上是表现了c++面向对象的思想。
代码实现思路:定义一个基类,保存所有类的基本信息。然后类的实例化推迟到其子类。再用一个单独的类来做创造实例的过程,就是工厂。
代码:
代码实现思路:定义一个基类,保存所有类的基本信息。然后类的实例化推迟到其子类。再用一个单独的类来做创造实例的过程,就是工厂。
代码:
#include<iostream> #include<exception> #include<string> using namespace std; class Operation { protected: double _numberA; double _numberB; public: Operation() :_numberA(0.0), _numberB(0.0) {} void SetNumberA(double number) { _numberA = number; } void SetNumberB(double number) { _numberB = number; } double GetNumberA() { return _numberA; } double GetNumberB() { return _numberB; } virtual double GetResult() = 0; }; class OperationAdd :public Operation { double GetResult() { return _numberA + _numberB; } }; class OperationSub :public Operation { double GetResult() { return _numberA - _numberB; } }; class OperationMul :public Operation { double GetResult() { return _numberA*_numberB; } }; class OperationDiv :public Operation { double GetResult() { if (abs(_numberB) > 0.0001) return _numberA / _numberB; else throw("除数不能为0"); } }; class OperationFactory { public: static Operation* createOperator(string operate) { Operation* oper = NULL; if (operate == "+") { oper = new OperationAdd(); } else if (operate == "-") { oper = new OperationSub(); } else if (operate == "*") { oper = new OperationMul(); } else if (operate == "/") { oper = new OperationDiv(); } return oper; } private: }; int main() { Operation*oper; oper = OperationFactory::createOperator("+"); oper->SetNumberA(14); oper->SetNumberA(34); double result = oper->GetResult(); cout << result; return 0; }
相关文章推荐
- 【C++深入浅出】设计模式学习之简单工厂
- c++设计模式之简单工厂模式
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- 【C++设计模式】简单工厂模式
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- c++设计模式之简单工厂模式
- C++设计模式之简单工厂模式
- 设计模式C++版_1_简单工厂模式
- C++设计模式从0进击-1-简单(静态)工厂模式
- c++设计模式之简单工厂
- 设计模式之简单工厂C++实现
- C++设计模式之简单工厂模式
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- .C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- C++设计模式新解三 简单工厂 工厂模式 抽象工厂
- C++设计模式从0进击-1-简单(静态)工厂模式
- 设计模式 简单工厂 c++实现
- 设计模式C++实现一:简单工厂模式
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)