最近开始学习设计模式,也简单的看过一些书,但是感觉都只是在理论层,没有亲自去运用,看过了也很容易忘记,从今天开始,为了加深印象,决定亲自去实现一下23种设计模式。
今天所要实现的是简单工厂模式,参考的是一本叫《大话设计模式_小菜大鸟》版本这本书,当然有兴趣的同学,我会将这本书的pdf版本和代码上传上去,下载地址http://download.csdn.net/detail/txtfashion/5078096。
简单工厂模式最主要的功能
1)定义创建对象的接口,封装了对象的创建
2)使得具体化类的工作延迟到了子类中
使用简单工厂模式来解决上面两个功能,首先声明了一个创建对象的接口,并封装了对象的创建过程,Factory这里类似一个真正意义上的工厂(生产对象)。第二个功能,我们需要提供一个对象的接口,并在子类中提供其具体实现(因为只有子类中可以决定到底实例化哪一个类)
主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。
GOOD:使用与不同情况创建不同的类时
BUG:客户端必须要知道基类和工厂类,耦合性差
在这实现了一个最简单的计算器,其功能只有加减乘除,代码如下http://download.csdn.net/detail/txtfashion/5078259