设计模式之策略模式
因为是跟工厂模式一同看的策略模式,刚开始还真没发现他们之间的区别。主要是《大话设计模式》书的作者在策略模式中用到了工厂模式。其实工厂模式是实现策略模式的一种方式,而具体策略模式是怎么样的,核心是什么,下面我们可以总结出来:
1、策略模式根本上来说就是封装了算法,不考虑具体实现,只考虑得到结果的模式。因此策略模式又叫算法簇模式,定义不同的算法,并且具体算法之间可以...
分类:
其他好文 时间:
2015-06-01 13:21:39
阅读次数:
107
策略模式定义了算法族,这些算法被分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。(此定义来源于《深入浅出设计模式》)
下面举一个根据这模式设计并实现有序数组的例子。
算法族是几个排序算法,它们都继承自Sort接口:
package sort;
public interface Sort {
/**
* 这是需要变化的地方。将它独立处理,和不需要变化的...
分类:
其他好文 时间:
2015-05-31 14:05:32
阅读次数:
131
说明:以下内容是学习HeadFirst后自行整理的笔记。内容和程序均来自于该书策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。概念理解起来生硬,下面用一个鸭子的例子说明。有一个模拟鸭子的游戏。游戏中有各种各样的鸭..
分类:
其他好文 时间:
2015-05-17 18:52:15
阅读次数:
124
场景
某个市场人员接到单后的报价策略(CRM系统中常见问题)报价策略很复杂,可以简单做如下分类:
普通客户小批量报价普通客户大批量报价老客户小批量报价老客户大批量报价
具体选用哪个报价策略,这需要根据实际情况来确定。这时候,我们采用策略模式即可。
我们先采用条件语句处理
public class Test {
public double getPrice(String...
分类:
编程语言 时间:
2015-05-14 23:52:00
阅读次数:
235
从今天开始看>,打算每学习一章都写一篇笔记,今天的第零篇希望是一个好的开端,能够善始善终.加油.
设计模式入门
设计原则零:不管当初软件设计的多好,一段时间之后总是成长和改变的,否则软件就会死亡.
设计原则一:找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起
把会变化的部分取出并封装起来,好让其他部分不会受到影响...
分类:
编程语言 时间:
2015-02-11 22:02:40
阅读次数:
186
用途 策略模式 (Strategy) 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 策略模式是一种行为型模式。 结构 图-策略模式结构图Strategy : 定义所有算法的公共接口(AlgorithmInterface)。Context...
分类:
编程语言 时间:
2015-01-22 17:28:55
阅读次数:
299
[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020]
继续上节内容,到目前为至,其实已经很好的实现了对各种类型的数组进行排序,而且,扩展性也不错,我们定义的比较器接口,可以适应不同的比较策略,但是我们注意到一点,在实现compare()方法时,我们需要向下转型,将Object类型转换成具体的类型,还是觉得有点麻烦,有没...
分类:
编程语言 时间:
2014-12-14 00:45:52
阅读次数:
202
下面是一个有关于策略模式的故事。假设Mike在开车的时候,会很频繁的加速,有一天因为超速他被一个警察拦下来了。有可能这个警察会比较友好,
没开任何罚单就让Mike把车开走了。(我们把这类型的警察称之为“NicePolice”)。也有可能Mike遇到了一个不太友好的警察,然后这个警察
给Mike出具了一张罚单。(我们把这类型的警察称之为“HardPolice”)。Mike其实并不知道他会遇到...
分类:
编程语言 时间:
2014-09-02 10:29:14
阅读次数:
229