//策略模式接口 public interface IStrategy { //定义抽象的算法方法,来约束具体的算法方法实现 public void algorithmMethod(); }
具体的策略实现:
//策略发法的实现 public class StrategyImpl implements IStrategy { //具体的方法实现 @Override public void algorithmMethod() { System.out.println("策略方法的具体实现"); } }
public class StrategyImpl2 implements IStrategy { @Override public void algorithmMethod() { System.out.println("策略的具体实现2"); } }
//策略的上下文 public class StrategyContext { //持有一个策略实现的引用 private IStrategy strategy; //使用构造器注入具体的策略类 public StrategyContext(IStrategy strategy){ this.strategy=strategy; } public void contextMethod(){ strategy.algorithmMethod(); } }
//具体的实现 public class Client { public static void main(String[] args) { //创建具体策略的实现 IStrategy strategy=new StrategyImpl(); //创建策略上下文的同时,将具体的策略的实现对象注入到策略上下文中 StrategyContext strategyContext=new StrategyContext(strategy); //调用上下文对象的方法来完成对具体策略实现的回调 strategyContext.contextMethod(); } }