4.策略模式
Strategy Pattern
模式定义
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。
结构
要点总结
- Strategy及其子类为组件提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各个算法之间进行切换。
- Strategy模式提供了用条件判断语句之外地另一种选择,消除条件判断语句,就是在解耦合。含有许多条件判断语句的代码通常都需要Strategy模式。(绝对稳定不变的场景可以用条件判断语句,比如每周七天,性别男女等)
- 如果Strategy对象没有实例变量,那么各个上下文可以共享同一个Strategy对象,从而节省开销。