简单工厂
来源:互联网 发布:权力的游戏 三傻 知乎 编辑:程序博客网 时间:2024/06/06 02:56
#include <iostream>using namespace std;class Operation{public:Operation() {}Operation(const double& dNumberOne, const double& dNumberTwo) : m_dNumberOne(dNumberOne), m_dNumberTwo(dNumberTwo) {}const double getNumberOne() { return m_dNumberOne; }void setNumberOne(const double& dNumberOne) { m_dNumberOne = dNumberOne; }const double getNumberTwo() { return m_dNumberTwo; }void setNumberTwo(const double& dNumberTwo) { m_dNumberTwo = dNumberTwo; }virtual double getResult() { return 0; }static Operation* createOperation(string strOperation, const double& dNumberOne = 0, const double& dNumberTwo = 0);private:double m_dNumberOne = 0;double m_dNumberTwo = 0;};class OperationAdd : public Operation{public:OperationAdd() {}OperationAdd(const double& dNumberOne, const double& dNumberTwo) : Operation(dNumberOne, dNumberTwo) {}virtual double getResult() override{return (Operation::getNumberOne() + Operation::getNumberTwo());}};Operation* Operation::createOperation(string strOperation, const double& dNumberOne, const double& dNumberTwo){Operation* objOperation = nullptr;if (strOperation == "+"){objOperation = new OperationAdd(dNumberOne, dNumberTwo);}return objOperation;}int main(){Operation* objOperation;string strOperation = "+";double dNumberOne = 1;double dNumberTwo = 2;objOperation = Operation::createOperation(strOperation, dNumberOne, dNumberTwo);cout << objOperation->getResult() << endl;return 0;}
总结:静态的createOperation函数创建需要的子类,多态调用正确的getResult函数得到结果
0 0
- 简单工厂,工厂,抽象工厂
- 简单工厂、工厂、抽象工厂
- 简单工厂、工厂、抽象工厂
- 工厂模式-简单工厂
- 简单工厂 静态工厂
- 工厂模式-简单工厂
- 工厂 > 简单工厂
- 简单工厂,工厂方法
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- 简单工厂
- Linux Deepin配置JDK,Eclipse,AndroidStudio
- at mMediaRecorder.stop(); it throw following error
- 【MinaFile】【十六】【2.0】总结
- 使用spring aop实现业务层mysql 读写分离
- 01背包问题
- 简单工厂
- 【转】VMware10中的Linux系统利用NAT网络连接方式访问外网配置
- 每天一个linux命令(23):Linux 目录结构
- AndroidPn项目实现推送的使用过程
- 监听返回键并退出所有Activity示例
- 机器学习初步
- 极多数据的输出前k(k<10)大值——swust oj福布斯排行榜(0273)
- java的环境搭建和简单介绍
- 116. Populating Next Right Pointers in Each Node LeetCode