简单的工厂模式
实现计算器
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;;
}