1,什么是策略模式? 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 2,策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象的行为。 3,设计原则 设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c ...
分类:
编程语言 时间:
2016-09-02 18:45:22
阅读次数:
250
一、前言 学习的第一个设计模式!不知道理解的对不对,期望大家一起多交流~ Strategy模式:策略模式,定义了算法族,分别封装起来,此模式可以让算法的变化独立于使用算法的客户。Strategy模式将逻辑算法封装到一个类中,通过组合的方式将具体的算法实现在组合对象中,再通过委托的方式将抽象的接口的实 ...
分类:
编程语言 时间:
2016-08-29 22:38:47
阅读次数:
173
策略模式:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 多用组合,少用继承。 //将基础属性与动态属性分类开来 public abstract class Duck { private FlyInterface flyInterface; privat ...
分类:
其他好文 时间:
2016-08-19 12:55:43
阅读次数:
121
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 比如超市收银软件,针对超市的不同销售策略(打八折、满300减50等),需要运用不同的算法。策略模式就可以适用于这种场合。这里打折、满减等作为一个算法族,继承自同一的父类;这些算法作为程序中经常变化 ...
分类:
其他好文 时间:
2016-08-12 01:19:42
阅读次数:
97
策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 设计原则:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 设计原则: 针对接口编程,而不是针对实现编程 此设计原则涉及到面向对象编程中一个极其重要的特点:多态。具 ...
分类:
其他好文 时间:
2016-08-02 16:56:36
阅读次数:
214
问题: Character是角色类,是抽象类,由具体的角色来继承,Weapon是武器接口,有具体的武器来实现。任何角色想换武器可以有setWeapon方法来实现,在角色fight过程中使用武器的useWeapon方法,进行攻击。 UML: 策略模式: 定义了算法族,分别封装起来,让他们之间可以互相替 ...
分类:
其他好文 时间:
2016-07-09 16:27:20
阅读次数:
102
策略模式定义了算法族,这些算法被分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
这是《深入浅出设计模式》对策略模式的定义,这个定义说得很准确,但是书中的示例却举得不好,让我对策略模式的理解总是“一会儿感觉理解了,一会儿感觉没有理解”。直到看了《Effective Java》第二版第21条,用函数对象表示策略,才终于只是处于“感觉理解了”的状态了。根据自己的理解,写了...
分类:
其他好文 时间:
2016-06-21 07:22:38
阅读次数:
174
△策略模式用于在用户行为经常发生变化的情况下,将行为单独提取出来,定义算法族,采用组合的方式,分别封装起来,让他们可以互相替换,此模式,让算法的变化独立于使用算法的客户。 该模式体现了如下设计模式的原则: 在策略模式中,第一点体现了对于类中变化的部分,进行了封装,第二部分体现了将算法族的接口定义在类 ...
分类:
其他好文 时间:
2016-06-18 16:46:53
阅读次数:
86
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 例子:设计一个鸭子类,有的鸭子会飞但有的不会飞;有的鸭子会叫但有的不会叫;所有的鸭子都有一个不同的外观。 参考:《headfirst设计模式》、http://yangguangfu.iteye.c ...
分类:
编程语言 时间:
2016-06-13 21:51:03
阅读次数:
136
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 设计原则:1、找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。(把变化的飞行行为、呱呱叫行为从不变的鸭子类中取出来) 2、针对接口编程,而不是针对实现编程。(FlyB ...
分类:
其他好文 时间:
2016-06-11 20:13:41
阅读次数:
143