设计模式学习之策略模式和简单工厂模式的区别和联系
来源:互联网 发布:淘宝如何一键复制宝贝 编辑:程序博客网 时间:2024/05/16 01:08
策略模式的问题,简单工厂模式也能实现,但是需要更多的产品类,而策略模式就是为解决这个问题而生的;至于真正用那个模式,就需要经验智慧了。
举例说明:<1>产品之于加减乘除,水果之于苹果梨橘子香蕉,文具之于笔尺刀,这时产品比较具体、有限和没有多个算法重叠,这时实用简单工厂模式。
<2>产品之于商场促销中的返利(可为300返100、500返200、10000返500等等无数)、折扣(2折、2.5折、6折、9折、9.1折等等无数)、正常购买、消费积分(100元10积分、200元30积分等等无数),这时产品构造又多次重叠,且有在不同时刻应用不同的规则时使用策略模式。
简单工厂模式只是解决了对象的创建问题,工厂需要包括所有的产品对象的创建,如果产品对象形式经常变化,就需要经常改动工厂,以致代码重新编译。所以策略模式就诞生了,策略模式---它定义了算法家族,分别封装起来,而不是像简单产品模式一样定义所有的产品类,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户,使客户拥有相同的访问过程。
简单工厂模式的核心是“简单工厂模式就是用来封装所有的产品对象的”。
策略模式理解核心是“策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中遇到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性”。
在基本的策略模式中,选择所用的具体实现的算法的职责由客户端对象承担,并转给策略模式的Context对象。这是策略模式本身纯粹的定义,所以,“选择所用最终怎样处理”还有很多文章可做!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yiwuzhi1010173713/archive/2009/09/02/4509589.aspx
- 设计模式学习之策略模式和简单工厂模式的区别和联系
- 设计模式学习之策略模式和简单工厂模式的区别和联系
- 设计模式学习之简单工厂模式和策略模式
- 《大话设计模式》之 简单工厂模式和策略模式的区别和相同之处
- 设计模式之简单工厂模式和策略模式总结
- java设计模式之策略模式和简单工厂模式
- 【设计模式】简单工厂模式、工厂方法模式和抽象工厂模式区别与联系
- 大话设计模式学习之工厂模式和策略模式
- 设计模式学习之简单工厂模式和工厂模式
- 简单工厂和策略模式的区别
- 简单工厂 和 策略模式的区别
- 简单工厂模式和策略模式区别
- 大话设计模式学习 策略和简单工厂模式结合
- 【设计模式之四:工厂模式对比】简单工厂、工厂方法和抽象工厂的区别
- 基于C#的设计模式学习(简单工厂模式和策略模式)
- 简单工厂模式和策略模式的区别
- 简单工厂模式和策略模式的区别(转)
- 简单工厂模式和策略模式的区别
- 经意之谈:如何应对十种性格类型的面试官
- 图上有两个axes时,第二个axes显示图片时就会出问题,figure上的所有东西都消失了,只剩下最后显示的图片。
- 雪拥蓝关马不前
- JSTL 入门: 表达式语言
- 有关做串口数据采集编程常碰到的运算
- 设计模式学习之策略模式和简单工厂模式的区别和联系
- 连连看外挂制作 —— 修改分数(1)
- 想成为“王者”的必备能力——领导力21法则
- 淘宝PM培训心得--第一季
- 失望
- Java实验设计一个银行帐户类
- DropDownList
- 根据form的ID值拼接请求URL
- 初识Visual Leak Detector