[Design] Strategy Pattern
行为模式主要是责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。
行为模式分为类的行为模式和对象的行为模式两种。
类的行为模式
类的行为模式使用继承关系在几个类之间分配行为。
对象的行为模式
对象的行为模式则使用对象的聚合来分配行为。
--------------------------------------------------------
策略模式
策略模式属于对象的行为模式。
其用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使用得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
结构及角色
- 1、环境角色(Context)
持有一个抽象策略角色Strategy类的引用。
- 2、抽象策略(Strategy)角色
这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
- 3、具体策略(ConcreteStrategy)角色
包装相关算法或行为。