简单工厂模式说简单点就是把创建对象的工作封装到一个类的方法中去。下面根据计算类来说明(源自于<<大话设计模式>>)
首先是操作的一个基类:
注意这个基类中有一个虚函数GetResult(),是为了实现多态用的。
下边是一个操作Add类
具体实现GetResult()函数
下面是工厂类:
class OperatorFactroy
{
public:
OperatorFactroy(void);
public:
~OperatorFactroy(void);
public:
Operator* CreateOperator(char opera);
private:
char ope;
};
下面是主类:
Operator* myOperator;
OperatorFactroy operatorFactory;
myOperator=operatorFactory.CreateOperator ('+');
myOperator->GetResult ()
一切东西通过代码可以反应处理,工厂模式到了这个地步应该比较的清楚了
使用简单工厂的好处:各个运算之间是分离的。
如果想增加一种算法,不会影响其它的算法,只需写一个继承与Operator的类
就可以了,然后再到OperatorFactory添加了分支就Ok。而主程序无需改变。