我所理解的设计模式(C++实现)——简单工厂模式(Simple Factory Pattern)
来源:互联网 发布:杭州seo异同 编辑:程序博客网 时间:2024/05/18 02:55
简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于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】
- 我所理解的设计模式(C++实现)——简单工厂模式(Simple Factory Pattern)
- 我所理解的设计模式(C++实现)——工厂方法模式(Factory Method Pattern)
- 我所理解的设计模式(C++实现)——抽象工厂模式(Abstract Factory Pattern)
- 我所理解的设计模式(C++实现)——抽象工厂模式(Abstract Factory Pattern)
- 我所理解的设计模式(C++实现)——工厂方法模式(Factory Method Pattern)
- 我所理解的设计模式(C++实现)——工厂方法模式(Factory Method Pattern)
- Simple Factory Pattern 简单工厂模式——《深入浅出设计模式(C#/Java版)》
- 设计模式之简单工厂模式(Simple Factory Pattern)
- 设计模式1:Simple Factory Pattern(简单工厂模式)
- 【JAVA设计模式】简单工厂模式(Simple Factory Pattern)
- 设计模式(1):简单工厂模式(Simple Factory Pattern)
- Java设计模式:简单工厂模式(Simple Factory Pattern)
- 设计模式——简单工厂模式(simple factory pattern)
- 简单工厂模式(simple Factory Pattern)
- 简单工厂模式(simple factory pattern)
- 简单工厂模式(Simple Factory Pattern)
- 简单工厂模式(Simple Factory Pattern)
- 简单工厂模式(simple factory pattern)
- Uva 216 - Getting in Line
- JDBC与Oracle的连接
- cantor的数表
- 基础总结篇之二:Activity的四种launchMode
- maven group artifact常用的仓库搜索地址
- 我所理解的设计模式(C++实现)——简单工厂模式(Simple Factory Pattern)
- getElementsByName 在IE下面的bug 的解决
- CreateThread()、_beginthreadex()及、AfxBeginThread()的联系和区别
- 准备开始写博客了
- Access denied for user 'root'@'localhost' (using password: YES)
- 杭电1024
- QTE移植成功后的交叉编译
- 基础总结篇之三:Activity的task相关
- 如何清除右键打开方式中的重复工具