首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

2.3 《硬啃设计模式》 第5章 “妞”太多,怎么管理?(2)- 工厂方法(Factory Method Pattern)

2013-10-25 
2.3 《硬啃设计模式》 第5章 “妞”太多,如何管理?(2)- 工厂方法(Factory Method Pattern)我在实际工作中还没

2.3 《硬啃设计模式》 第5章 “妞”太多,如何管理?(2)- 工厂方法(Factory Method Pattern)

我在实际工作中还没有用过工厂方法,下面简单谈谈我的理解,供大家参考。

2.3 《硬啃设计模式》 第5章 “妞”太多,怎么管理?(2)- 工厂方法(Factory Method Pattern)

这个图一下子不太好理解,我们先回顾一下简单工厂,简单工厂是通过一个方法来包装new对象的动作,如果我们将new对象的动作包装到一个类中,那么这个类就可以看成是一个工厂,该工厂专门用来产生某些对象的。

有时候我们希望能生产苹果、西瓜、葡萄等不同品种的水果,这样一个工厂就不能满足要求,我们需要分别做出苹果工厂、西瓜工厂、葡萄工厂,需要苹果时就调用苹果工厂的CreateProduct()就搞定了。

但问题来了,我们希望程序不需要管是苹果工厂还是西瓜工厂,总之是工厂就行了。这样我们就需要将这些苹果工厂、西瓜工厂、葡萄工厂抽象为水果工厂了,就好像上图中的ProductA_Factory,ProductB_Factory继承了抽象类Factory。

上图中无论是哪个工厂,生产的都是Product,Product、Factory已经被抽象,而ProductA_Factory实际生产的是ProductA1、ProductA2,ProductB_Factory实际生产的是ProductB1、ProductB2,注意上图中用了相同的颜色来表示哪个工厂生产哪些产品。

 

 

请看下一文……   

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

《硬啃设计模式》作者

www.umlonline.org创办人

 

热点排行