一直以来都没有好好学习设计模式,最近刚从朋友那拿来一本书《GoF+23种设计模式解析附C++实现源码》,决定把里面的代码全部实现一遍,然后留下笔记。
原文出处:http://blog.csdn.net/lengzijian/article/details/8020776
1.工厂方法:
一个抽象产品类,派生出多个具体的产品类
一个抽象工厂类,派生出多个具体的工厂类
每个具体的工厂类,只能创建一个具体的产品类实例
如图:
实现代码地址(在linux下,make即可):https://github.com/lengzijian/factory
2.抽象工厂模式
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类
一个抽象工厂类,派生出多个具体工厂类
每个具体工厂类可以创建出多个具体产品类的实例
如图:
实现代码地址(在linux下,make即可):https://github.com/lengzijian/AbstractFactory
区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。