工厂模式 和工厂方法

本文介绍了一种使用模板和工厂模式来实现通用计算器的方法。通过定义基类Operation和Factory,派生出具体的加法操作AddOperation及其实现的工厂AddFactory。这种方式避免了使用switch-case等条件判断语句,使代码更加灵活且易于扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的工厂模式
实现计算器
1、采用算子的方式实现
2、采用工厂 类的方式来创建需要的类,采用比如说switchcase的方式
工厂方法
1、每个需要构建的类都继承自基类,每个类都有自己的工厂
2、每个类需要创建的时候,就创建自己的工厂,然后,在工厂中调用创建自己的行数


工厂方法的好处,不用再switchcase,直接创建需要的类,并实现对应的工厂,需要用的时候,先创建工厂,然后再调用需要的类。

#include<iostream>
using namespace std;

template <class T>
class Operation;

template <class T>
class Factory
{
public:
virtual Operation<T> *CreateOperation( ) = 0;
};
template <class T>
class Operation
{
public:
virtual T Excute(T left , T right) = 0;
};

template <class T>
class AddOperation : public Operation<T>
{
public : 
T Excute(T left , T right)
{
return left + right;
}
};
template <class T>
class AddFactory : public  Factory<T>
{
public :
Operation<T> *CreateOperation()
{
return new AddOperation<T>();	
}
};
int main()
{
Factory<double> *fac_ptr = new AddFactory<double>();
Operation<double> * op_ptr = fac_ptr->CreateOperation();
cout<<op_ptr->Excute(1,1)<<endl;;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值