读书人

[设计方式][一] head first 设计模式之

发布时间: 2012-11-09 10:18:47 作者: rapoo

[设计模式][一] head first 设计模式之策略模式(strategy)
1 概念
策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.)

2 策略模式的结构
封装类:也叫上下文,对策略进行二次封装,目的是避免高层模块对策略的直接调用。
抽象策略:通常情况下为一个接口,当各个实现类中存在着重复的逻辑时,则使用抽象类来封装这部分公共的代码,此时,策略模式看上去更像是模版方法模式。
具体策略:具体策略角色通常由一组封装了算法的类来担任,这些类之间可以根据需要自由替换。

3 设计原则
a) 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;
b) 针对借口编程,而不是针对实现编程;
c) 多用组合,少用继承;

示例代码:

 

读书人网 >软件开发

热点推荐