1.简单工厂模式

UML类图

代码

main.cpp

cpp 复制代码
#include <iostream>
#include "OperationFactory.h"
using namespace std;

int main(void) {

	float num1;
	float num2;
	char operate;
	cin >> num1 >> num2 >> operate;
	Operation* oper = OperationFactory::createOperate(operate);
	oper->setnumA(num1);
	oper->setnumB(num2);
	double result = oper->getResult();
	cout << result << endl;

	return 0;
}

OperationFactory.h

cpp 复制代码
#include"Operation.h"
#include<string>
using namespace std;
class OperationFactory {
public:
	static Operation* createOperate(char operate) {
		Operation *oper = NULL;
		switch (operate) {
		case '+':
			oper = new OperationAdd();
			break;
		case '-':
			oper = new OperationSub();
			break;
		case '*':
			oper = new OperationMul();
			break;
		case '/':
			oper = new OperationDiv();
			break;
		}
		return oper;
	}
};

Operation.h

cpp 复制代码
 class Operation {//运算类基类

 protected:
	 float numA = 0;
	 float numB = 0;

 public:
	 void setnumA(float paramA) {
		 numA = paramA;
	 }
	 void setnumB(float paramB) {
		 numB = paramB;
	 }
	 virtual float getResult() {
		 float result = 0;
		 return result;
	 }

};


 class OperationAdd :public Operation {//加法类派生类

 public:
	 float getResult() {
		 float result = 0;
		 result = numA + numB;
		 return result;
	 }

 };

 class OperationSub :public Operation {//派生减法类

 public:
	 float getResult() {
		 float result = 0;
		 result = numA - numB;
		 return result;
	 }
 };

 class OperationMul :public Operation {//派生乘法类
 public:
	 float getResult() {
		 float result = 0;
		 result = numA * numB;
		 return result;
	 }
 };

 class OperationDiv :public Operation {//派生除法类
 public:
	 float getResult() {
		 float result = 0;
		 result = numA / numB;
		 return result;
	 }
 };
相关推荐
会员果汁6 天前
1.设计模式-简单工厂模式
设计模式·简单工厂模式
沟通QQ19226389 天前
碳交易机制下的需求响应综合能源系统优化运行模型研究:探索低碳发展路径,实现双碳目标的有效手段
简单工厂模式
MM_MS15 天前
C# 线程与并发编程完全指南:从基础到高级带详细注释版(一篇读懂)
开发语言·机器学习·计算机视觉·c#·简单工厂模式·visual studio
Q1808095117 天前
静止坐标系下三相构网变换器虚拟同步机控制(VSG)仿真 1、实现静止坐标系下的电压控制型VSG控制
简单工厂模式
口袋物联21 天前
设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·设计模式·简单工厂模式
MM_MS24 天前
C#小案例-->汽车租聘系统计价功能
c#·汽车·简单工厂模式·抽象工厂模式·visual studio
崎岖Qiu1 个月前
【设计模式笔记10】:简单工厂模式示例
java·笔记·设计模式·简单工厂模式
崎岖Qiu2 个月前
【设计模式笔记11】:简单工厂模式优缺分析
java·笔记·设计模式·简单工厂模式
WaWaJie_Ngen2 个月前
【设计模式】工厂模式(Factory)
c++·设计模式·简单工厂模式·工厂方法模式·抽象工厂模式
杯莫停丶2 个月前
设计模式之:简单工厂模式
java·设计模式·简单工厂模式