相关的资料网上很多,我这里自己总结一下。
策略模式就是为了达到一个目标,可以有多种方法(即多种策略)采用,为了减少类与类之间的耦合,所以采用如下措施:
- 设置一个接口,interface Strategy,里面有未实现的方法doThings()
- StrategyA 继承 Strategy,StrategyB 也继承 Strategy,这两个具体类分别实现doThings()方法,注意这两个类里面的doThings()方法的具体实现是显然不同。
- 然后在main里面利用多态性。
Strategy s = new StrategyA();
s.doThings();
或者
Strategy s = new StrategyB();
s.doThings();
这样就能通过一个引用随时更改采用的策略。
** 注意这里Strategy是采用接口interface而不是抽象类,接口是对行为的抽象,抽象类是对对象的抽象。