java 写一个简单的策略模式
时间: 2023-11-08 20:26:43 浏览: 30
好的,以下是一个简单的策略模式的 Java 代码示例:
首先,定义一个接口,表示所有的策略都必须实现的方法:
```java
public interface Strategy {
int doOperation(int num1, int num2);
}
```
接着,实现不同的策略,比如加法、减法和乘法:
```java
public class AddStrategy implements Strategy {
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
public class SubtractStrategy implements Strategy {
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
public class MultiplyStrategy implements Strategy {
public int doOperation(int num1, int num2) {
return num1 * num2;
}
}
```
最后,定义一个 Context 类,用于选择并使用不同的策略:
```java
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);
}
}
```
使用示例:
```java
public class StrategyPatternDemo {
public static void main(String[] args) {
Context context = new Context(new AddStrategy());
System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
context = new Context(new SubtractStrategy());
System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
context = new Context(new MultiplyStrategy());
System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
}
}
```
输出结果为:
```
10 + 5 = 15
10 - 5 = 5
10 * 5 = 50
```