简单工厂模式主要是利用类的多态性,在Factory中根据不同的需求创建相应的子类得到不同的结果。

下图是以一个简单计算器为例的类图

图中OperationFactory工厂类的实现大致如下:

 1 class OperationFactory
2 {
3 public:
4 Operation *createOperation(std::string operator)
5 {
6 Operation *pOper = NULL;
7 switch (operator)
8 {
9 case '+':
10 pOper = new OperationAdd;
11 break;
12 case '-':
13 pOper = new OperationSub;
14 break;
15 case '*':
16 pOper = new OperationMul;
17 break;
18 case '/':
19 pOper = new OperationDiv;
20 break;
21 }
22 return pOper;
23 }
24 };

根据返回的指针调用GetResult()方法便能得到结果。

若是要添加其他运算,只需新建一个运算类实现Operation接口,然后在工厂中添加一个case实例化该对象。

posted on 2011-08-04 01:01  CNSky  阅读(411)  评论(0编辑  收藏  举报