定义
The Strategy pattern
The strategy pattern defines a family of algorithms encapsulate each one, and makes them interchangeable. Strategy lets algorithm vary independently from clients that use it.
策略模式
策略模式定义了一系列的算法,分别封起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.
说明
简单的来说,对于一个接口,有多种实现。这些实现可以自由替换,不会影响其它客户的调用.
图示
列举的是游泳的例子,游泳有好几种游法,一个人在游泳时可以蝶泳,蛙泳,仰泳等等,所以将游泳这个行为抽成一个接口,下面依次蝶泳,蛙泳,仰泳的实现。而Person类直接引用游泳接口,可以在运行时通过设置swimable来动态的改变游泳的方式。
总结
策略模式是一个提倡“针对接口编程”的模式,而使用接口的目的是为了统一标准或着说是制定一种强行的规定。
策略模式的使用是由用户发起的,根据用户的操作决定使用什么具体的策略角色。策略模式仅仅封装算法,提供新的算法加入到已有系统和算法间的相互替换.