java简单的策略模式例子
时间: 2023-10-25 12:08:35 浏览: 60
在Java中,策略模式是一种行为设计模式,它允许在运行时选择算法的行为。下面是一个简单的策略模式的例子:
首先,定义一个策略接口Strategy,其中包含一个calculate方法用于执行具体的计算操作。
```java
public interface Strategy {
int calculate(int a, int b);
}
```
然后,实现几个具体的算法类,分别实现Strategy接口,完成不同的计算操作。
```java
public class AddStrategy implements Strategy {
@Override
public int calculate(int a, int b) {
return a + b;
}
}
public class SubstractStrategy implements Strategy {
@Override
public int calculate(int a, int b) {
return a - b;
}
}
```
接下来,定义一个使用策略对象的类Context,其中持有一个Strategy接口的引用,并通过setStrategy方法设置具体的策略对象,在calculate方法中调用策略对象的calculate方法执行计算操作。
```java
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public Strategy getStrategy() {
return strategy;
}
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public int calculate(int a, int b) {
return strategy.calculate(a, b);
}
}
```
通过上述代码,我们可以在运行时选择不同的策略对象进行计算操作。例如:
```java
public class Main {
public static void main(String[] args) {
Context context = new Context(new AddStrategy());
int result1 = context.calculate(5, 3);
System.out.println("5 + 3 = " + result1);
context.setStrategy(new SubstractStrategy());
int result2 = context.calculate(5, 3);
System.out.println("5 - 3 = " + result2);
}
}
```
输出结果为:
5 + 3 = 8
5 - 3 = 2