学而时习之,温故而知新。
 
敌人出招(使用场景)
 
业务中需要多个算法可替换,而不能重构代码时,怎么办?或者一个对象在运行中要根据业务切换不同的模式或者采用不同的算法,怎么办?
 
到你出招
 
这个时候就要出策略模式这一招了。
 
具体招式
 
策略模式的招式,就是把需要替换的算法抽象成接口类,然后根据不同业务定义人多子类——储备很多子类来实现接口类的可替换算法。
 
这样的话,一个对象想要根据业务状态执行不同算法或者策略,那么只需要传递进来不同的策略子类就行了。
 
这个策略实际上分为2类,一类是各种继承抽象策略类的子类,另一类就是使用这些策略的类它可以有替换接口,接受那些策略子类。