码迷,mamicode.com
首页 > 其他好文 > 详细

简单方法vs工厂方法

时间:2014-07-08 14:34:46      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:面向对象   设计模式   工厂模式   工厂方法模式   

一、“计算器”结构图——简单工厂模式

bubuko.com,布布扣

       简单工程模式:对具有相同功能的类进行抽象得到父类,这些类继承它成为子类。为了对这些功能进行选择,建立一个工厂类进行判断,其中运用一个Switch语句。

       优点:结构简单、操作单一。

       缺点:需要事先考虑周到,操作时需准确。由下的“功能扩展”中可知,易违背设计模式六大原则中的“开放-封闭原则”。

       功能扩展:若增添功能方法,则需另添加一个类,在运算类中添加的相应的方法,再修改客户端中的Switch语句中的case项。

二、“计算器”结构图——工厂方法模式

bubuko.com,布布扣

       工厂方法模式(Factory Method):先建立一个工厂接口,再通过具体工厂来实现接口,同时调用相应的算法类,这些算法类真正执行具体算法。

       优点:灵活度高,可扩充性较强。同时客服了简单工厂模式的开放-封闭原则的不足。

       缺点:结构冗余,需建立的类较多,增加了复杂度。

       添加功能:添加工厂来实现接口,添加一个算法类来供工厂调用,在客户端即可使用此功能了。


列表对比:

bubuko.com,布布扣

总结:通过上面的“结构图”和“列表对比”,我们很容易能发现,在固定的小需求中简单工厂模式的工作量小于工厂方法模式,在资源的开销上也确实要小一些;而工厂方法模式比较全面一些,在应对变动需求的时候显示出了它的灵活性。各有千秋,只是使用在不同的位置上。

           “简单工厂模式”有它单纯、直率的一面,这是我们可以学习和善加利用的;

           “工厂方法模式”也表现出了它的细致灵活、能担当,这也是我们程序猿的好助手。



简单方法vs工厂方法,布布扣,bubuko.com

简单方法vs工厂方法

标签:面向对象   设计模式   工厂模式   工厂方法模式   

原文地址:http://blog.csdn.net/wangqingbo0829/article/details/37390471

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!