您的位置:首页 > 编程语言 > C语言/C++

三种工厂模式的分析以及C++实现

2013-06-19 14:12 471 查看

三种工厂模式的分析以及C++实现

以下是我自己学习设计模式的思考总结。

简单工厂模式

简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类。客户端唯一需要知道的具体子类就是工厂子类。除了这点,基本是达到了依赖倒转原则的要求。

假如,我们不用工厂类,只用AbstractProduct和它的子类,那客户端每次使用不同的子类的时候都需要知道到底是用哪一个子类,当类比较少的时候还没什么问题,但是当类比较多的时候,管理起来就非常的麻烦了,就必须要做大量的替换,一个不小心就会发生错误。

而使用了工厂类之后,就不会有这样的问题,不管里面多少个类,我只需要知道类型号即可。不过,这里还有一个疑问,那就是如果我每次用工厂类创建的类型都不相同,这样修改起来的时候还是会出现问题,还是需要大量的替换。所以简单工厂模式一般应该于程序中大部分地方都只使用其中一种产品,工厂类也不用频繁创建产品类的情况。这样修改的时候只需要修改有限的几个地方即可。

AbstractProduct.h
AbstractProduct.cpp

SimpleFactory.h
SimpleFactory.cpp
client.cpp

1 g++ -o client client.cpp SimpleFactory.cpp AbstractProduct.cpp


结果

AbstractProduct.h
AbstractProduct.cpp
AbstractFactory.h
AbstractFactory.cpp
client.cpp

1 g++ -o client client.cpp AbstractFactory.cpp AbstractProduct.cpp


结果

AbstractProductA.h
AbstractProductA.cpp
AbstractProductB.h
AbstractProductB.cpp
AbstractFactory.h
AbstractFactory.cpp
client.cpp

1 g++ -o client AbstractProductA.cpp AbstractProductB.cpp AbstractFactory.cpp client.cpp


结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: