简单方法vs工厂方法

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


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

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

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

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

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


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

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

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

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


列表对比:


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

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

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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值