设计模式之——简单工厂模式
在C++语言中,简单工厂模式可以通过以下方式来实现:
首先,定义一个产品的基类或接口,所有具体产品类都应该实现这个基类或接口。
果需要更改加法算法,只需要更改 Add 类就可以。如果要增加其他运算,比如平方根、正弦、自然对数等,只要增加相应的运算子类和修改运算类工厂(在 switch 中增加分支)即可
#include<iostream>
using namespace std;
enum ClassType
{
ClassA,
ClassB,
ClassC,
ClassD,
};
class Base
{
public:
virtual void whomi() = 0;
};
class A:public Base
{
public:
// 具体产品A的操作实现
void whomi()
{
cout << " A" << endl;
}
};
class B:public Base
{
public:
// 具体产品B的操作实现
void whomi()
{
cout << " B" << endl;
}
};
class C:public Base
{
public:
void whomi()
{
cout << " C" << endl;
}
};
class D:public Base
{
public:
void whomi()
{
cout << " D" << endl;
}
};
//工厂的体现
Base *create_class(const ClassType& type)
{
switch(type)
{
case ClassA:
return new A();
case ClassB:
return new B();
case ClassC:
return new C();
case ClassD:
return new D();
default:
return NULL;
}
}
int main()
{
Base *base=create_class(ClassB);
base->whomi();
delete base;
return 0;
}