今天我们要介绍的设计模式叫做策略模式。策略模式其实就是把不同的策略(方法)封装在不同的类中。在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式(摘自菜鸟教程)。下面我们用代码来实现策略模式。
1、首先定义一个策略的接口:
public interface Strategy { public int operating(); }
2.定义一些实现策略接口的实现类(具体的策略)。
public class AddOperation implements Strategy{ @Override public int operating(int a,int b) { return a+b; } } public class SubstractOperation implements Strategy{ @Override public int operating(int a,int b) { return a-b; } }
3.定义一个Context 类。
public class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public int executeStrategy(int a, int b) { return strategy.operating(a, b); } }
4.客户端调用:
public static void main(String[] args) { Context context = new Context(new AddOperation()); System.out.println("12 + 5 = " + context.executeStrategy(12, 5)); context = new Context(new SubstractOperation()); System.out.println("12 - 5 = " + context.executeStrategy(12, 5)); } 代码执行结果: 12 + 5 = 17 12 - 5 = 7
在实际的开发中,策略模式通常与工厂模式混合使用。