策略模式定义
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替代。
策略模式的三个角色
策略模式使用的是面向对象的继承和多态机制,一起来了解一下策略模式中的三个角色:
Context封装角色
简单理解为上下文,起承上启下的作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。
Strategy抽象策略角色
策略,算法家族的抽象,通常为接口,定义每个策略或者算法必须具有的方法和属性。
ConcreteStrategy具体策略角色
实现抽象策略中的操作,即具体实现接口,该类含有具体的算法。