策略模式的定义:策略模式属于对象行为类的模式。定义一系列的算法,把它们一个一个封装成拥有更痛接口的类,并实现他们之间的相互替换。该模式可以使得算法可独立于使用它的客户而变化。这里所说的算法不要狭义的理解为数据结构中所说的算法,其实是为不同的业务的处理方法,而设计的多个谋略(例如古装剧里面的那些事先准备好的锦囊妙计)
策略模式的优点是什么呢?
将算法的使用和算法本身的实现分离开来(类似于MVC模式的逻辑和界面分离,但是相互之间还是存在联系),并且将算法单一的封装起来,降低代码的耦合度。不同的业务只需要更改少量的代码。而被封装的算法就可以的到多次利用。在这种情况下还可以考虑使用享元模式来共享算法,便于优化性能(当然还是要考虑享元模式的使用条件)