策略模式

来源:互联网 发布:淘宝用户服务协议 编辑:程序博客网 时间:2024/06/06 06:54

定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
算法接口:

public interface Strategy {   public int doOperation(int num1, int num2);}

算法实现:

public class OperationAdd implements Strategy{   @Override   public int doOperation(int num1, int num2) {      return num1 + num2;   }}public class OperationSubstract implements Strategy{   @Override   public int doOperation(int num1, int num2) {      return num1 - num2;   }}public class OperationMultiply implements Strategy{   @Override   public int doOperation(int num1, int num2) {      return num1 * num2;   }}

根据不同的策略执行:

public class Context {   private Strategy strategy;   public Context(Strategy strategy){      this.strategy = strategy;   }   public int executeStrategy(int num1, int num2){      return strategy.doOperation(num1, num2);   }}

传入策略进行测试:

public class StrategyPatternDemo {   public static void main(String[] args) {      Context context = new Context(new OperationAdd());              System.out.println("10 + 5 = " + context.executeStrategy(10, 5));      context = new Context(new OperationSubstract());              System.out.println("10 - 5 = " + context.executeStrategy(10, 5));      context = new Context(new OperationMultiply());              System.out.println("10 * 5 = " + context.executeStrategy(10, 5));   }}
原创粉丝点击