2.1 《硬啃设计模式》 第3章 “妞”太多,如何管理?(1)- 简单工厂
2013-10-24 13:36
369 查看
如果在代码中经常要重复写这段代码,实在不太爽:
if (…...)
newObject = new TypeA(); //TypeA TypeB的父类一样。
else if (…...)
newObject = new TypeB(); //TypeA TypeB的父类一样。
……
你考虑怎样改进?
这样可不简单!用一个静态方法,根据传入参数返回所需的对象便可,在每个需要用到这个对象的地方,这样写便可:
Object newObject = ObjectBuilder.CreateObject(string type);
类图如下:
以上这个设计就是简单工厂,简单工厂不是23种模式中的一种,但在我们实际工作中经常会用到,简单工厂是管理new的最常见方法。
在程序中new对象一般没有这样简单,往往要根据不同的情况new不同的对象,并且要初始化对象,我们往往将这些工作“包装”到某个方法里面,通过这个方法直接得到需要的对象。
请看下一文……
作者:张传波
创新工场创业课堂(敏捷课程)讲师
软件研发管理资深顾问
CMMI首席专家
《火球——UML大战需求分析》作者
《硬啃设计模式》作者
www.umlonline.org创办人
if (…...)
newObject = new TypeA(); //TypeA TypeB的父类一样。
else if (…...)
newObject = new TypeB(); //TypeA TypeB的父类一样。
……
你考虑怎样改进?
这样可不简单!用一个静态方法,根据传入参数返回所需的对象便可,在每个需要用到这个对象的地方,这样写便可:
Object newObject = ObjectBuilder.CreateObject(string type);
类图如下:
以上这个设计就是简单工厂,简单工厂不是23种模式中的一种,但在我们实际工作中经常会用到,简单工厂是管理new的最常见方法。
在程序中new对象一般没有这样简单,往往要根据不同的情况new不同的对象,并且要初始化对象,我们往往将这些工作“包装”到某个方法里面,通过这个方法直接得到需要的对象。
请看下一文……
作者:张传波
创新工场创业课堂(敏捷课程)讲师
软件研发管理资深顾问
CMMI首席专家
《火球——UML大战需求分析》作者
《硬啃设计模式》作者
www.umlonline.org创办人
相关文章推荐
- 2.3 《硬啃设计模式》 第5章 “妞”太多,如何管理?(2)- 工厂方法(Factory Method Pattern)
- 2.4 《硬啃设计模式》第6章 “妞”太多,如何管理?(3)- 抽象工厂(Abstract Factory Pattern)
- 如何给多个子系统设计一个简单通用的权限管理方案?(详细讲解及源代码下载)
- 商务文件该如何管理?首先你需要个简单称职的云盒子企业云盘!
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中最简单的例子程序,如何时间通讯录管理
- 程序员该如何管理后宫:皇后造小人(工厂模式)
- 简单描述下linux下如何扩充,删除,管理LVM
- 如何简单的解决手速太快,点击button太多,而造成数据多次提交
- 不简单的工厂:实际体验 .NET Core 2.1 新生物 HttpClientFactory
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中最简单的例子程序,如何时间通讯录管理
- 如何使用Access创建一个简单MIS管理系统_Access
- 第四章 Spring.Net 如何管理您的类___对象、对象工厂和应用程序上下文
- 中级JavaScript例子, 如何实现一个简单实用的模板套用机制, GXTemplate , 第3章(估计要写9章)
- 2.2 《硬啃设计模式》 第4章 如何管理全局信息?- 单件模式(Singleton Pattern)
- 如何建立一套简单又高效的研发管理体系
- 简单说说spring的事务机制,以及是如何管理的?
- 2-2.1-(译)如何使用cocos2d来做一个简单的iphone游戏教程(第一部分)
- Win10系统的SurfacePro4的启动菜单太多怎么管理,UEFI的启动菜单如何编辑
- 如何让Oracle表列管理更加简单
- (4)简单工厂模式 — Simple Factory — 文物管理衙门 — 和申的经营之道第一部分