策略模式(strategy pattern)
1. 定义(Definition)
策略模式(Strategy)属于对象行为型设计模式,主要是定义一系列的算法,把这些算法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。策略模式使这些算法 在客户端调用它们的时候能够互不影响地变化。这里的算法不要狭义的理解为数据结构中算 法,可以理解为不同的业务处理方法。
2. 结构组成
策略模式由三个角色组成:
- 算法使用环境(Context)角色: 算法被引用到这里和一些其它的与环境有关的操作一起来完成任务。
- 抽象策略(Strategy)角色: 规定了所有具体策略角色所需的接口。在 java 它通常由接口或者抽象类来实现。
- 具体策略(Concrete Strategy)角色: 实现了抽象策略角色定义的接口。
3. 特点
策略模式体现了面向对象程序设计中非常重要的两个原则:
- 封装变化的概念。
- 编程中使用接口