策略模式一般用于整体的替换算法,将算法作为参数来决定具体执行哪种算法,这种模式使用相对简单,用于含有多种算法的情况,如果有新的算法,只需要实现定义的接口和接口中的方法即可。
1、首先定义一个接口,包含一个方法
public interface Strategy { void job(String operation); }
2、两个实现类
public class WalkStrategy implements Strategy { @Override public void job(String operation) { System.out.println("I want to walk."); System.out.println(operation); } }
public class RunStrategy implements Strategy{ @Override public void job(String operation) { System.out.println("I want to run."); System.out.println(operation); } }
3、应用类
public class Main { private Strategy strategy; public Main(Strategy strategy) { this.strategy = strategy; } public void job(String operation) { strategy.job(operation); } }
4、测试
public class Test { public static void main(String[] args) { WalkStrategy walkStrategy = new WalkStrategy(); RunStrategy runStrategy = new RunStrategy(); new Main(walkStrategy).job("walk"); new Main(runStrategy).job("run"); } }