策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
策略模式UML图如下:
举例:
游泳池中有不同种类的鸭子,有绿头鸭,红头鸭,橡皮鸭,木头鸭等。不同鸭子的特征或行为不同。绿头鸭(MallardDuck)可以叫声是“quack”,会飞;橡皮鸭叫声是“queak”,不会飞;木头鸭不会叫,...
分类:
编程语言 时间:
2014-06-20 11:54:02
阅读次数:
220
策略模式(Strategy Pattern) 详解
本文地址: http://blog.csdn.net/caroline_wendy/article/details/26577879
本文版权所有, 禁止转载, 如有需要, 请站内联系.
策略模式: 定义了算法族, 分别封装起来, 让它们之间可以相互替换, 此模式让算法的变化独立于使用算法的客户.
对于父类的子类族需要经常扩展新的功能, 为了使用父类比较灵...
分类:
其他好文 时间:
2014-05-23 02:35:13
阅读次数:
341
策略模式定义:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
简单定义:封装可以互换的行为,并使用委托来决定要使用哪一个。
OO原则:
封装变化
多用组合,少用继续。
针对接口编程,不针对实现编程。
以书中的Duck为例:
Duck.java(抽象类,performFly()与performQuack()函数的实现委托给行为类,行为由子类...
分类:
其他好文 时间:
2014-05-22 23:20:51
阅读次数:
346
模式是在某情境下,针对某问题的某种解决方案。设计模式是解决某些经常重复发生的设计问题的一些通用解决方案。
一、模式简介
1、策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
2、观察者模式:定义了对象之间的一对多依赖,当一个对象改变时,它的所有依赖者都会收到通知并自动更新。
3、装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者...
分类:
其他好文 时间:
2014-05-22 10:29:51
阅读次数:
260
HEAD
FIRST:策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法可独立于它的客户而变化。大话设计模式:它定义了算法家族,分别封装起来,让它们之间可以互相替...
分类:
其他好文 时间:
2014-05-21 20:48:42
阅读次数:
313
策略模式
定义策略模式定义了算法族,分别封装起来,让他们之间可以相互转换,此模式让算法的变化独立于使用算法的客户。实例上面的定义看起来说的不太清楚,记定义无意义,理解策略模式还是要看书中的鸭子例子。假设设计一个模拟鸭子的游戏,鸭子的种类有很多,有红头鸭、绿头鸭等等,鸭子可以划水,可以呱嘎叫。在这个模...
分类:
其他好文 时间:
2014-05-20 07:44:04
阅读次数:
233