简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于GoF 23中设计模式之一,但是是简单实用的。他是有一个工厂对象来决定创建哪一种对象的实例。
实现比较简单,这里我只贴出类图和调用方法:
调用方法:
IProduct * simpleFactory::Create(std::string className)
{
if( className == "Ipad")
return new Ipad();
if(className == "IPhone")
return new IPhone();
}
优点:外界只要传入类的名字或者识别符即可,不需要关心具体创建过程,只顾“消费”就可以了。各有各的指责和权力,分工明确,利于整个软件架构优化。
缺点:违反里高内聚责任分配原则,将全部逻辑放到一个工厂类中,如果需要支持新的类,那就必须改变工厂类了。
这里只有一种工厂,一个系列的产品,那如果有多个系列的产品呢?问题如何解决?
应用场景:
1.我的asp.net程序需要根据客户实际所用数据库来配置,那么我的程序支持所有的数据库,具体用到哪个,配置文件配置一下即可。这个C#/Java里的反射就可以实现。
2.MFC里的Seralize功能。
LCL_data原创于CSDN.NET【http://blog.csdn.net/lcl_data/article/details/8712171】
分享到:
相关推荐
Head First 设计模式 (四) 工厂模式(factory pattern) C++实现
设计模式C++学习之抽象工厂模式(AbstractFactory)
就像在一年前看GoF的《设计模式》一书,和半年前用C++模拟、实现23种经典的设计模式一般,透过这个写解析的过程,我又看到了另外一个境界。一直认为学习的过程很多时候可以这样划分:自己学会一门知识(技术)、表达...
Simple Factory模式: 定义创建对象的接口,并封装对象的创建。 一般情况下,我们为了提高内聚和松耦合,经常会使用多态来处理一些问题。抽象出一些类的公共接口作为抽象基类或者接口。这样的话,我们将会面临一个...
设计模式C++学习之工厂方法模式(Factory Method)
我所理解的设计模式 C++实现
对于GoF设计模式的精解 内容翔实易懂,是不可多得的设计模式学习入门教材 用C++实现设计模式实例,语言通俗易懂
对应的博客链接:http://blog.csdn.net/t1234xy4/article/details/52432559#
基于MFC的BP神经网络实现的简单模式识别,欢迎各位下载学习。
23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...
设计模式C++实现源代码,全部23种设计模式的C++代码实现
设计模式C++实现(7)——外观模式、组合模式[参照].pdf
一本专门介绍设计模式的好书,基于C++的案例,该书深入浅出地介绍了设计模式的概念及应用。
介绍设计模式的23种模式,及vc6.0 下c++代码实现
不多介绍了 GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf GoF+23种设计模式解析附C++实现源码(2nd+Edition).pdf
设计模式精解-GoF23种设计模式解析附C++实现源码,是系统学习设计模式,深入理解每种模式的原型,优缺点,适用的场景,达到灵活运用目的的最好参考书
Headfirst第四章工厂模式,三种工厂模式 简单工厂模式 工厂模式 抽象工厂模式 C++实现 面向对象思想
Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现
C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)
虚拟机的设计与实现——C_C++虚拟机的设计与实现——C_C++虚拟机的设计与实现——C_C++虚拟机的设计与实现——C_C++虚拟机的设计与实现——C_C++