Java写一个策略模式
时间: 2023-03-22 09:03:35 浏览: 68
Java 是一种面向对象的编程语言,其特点是可移植性、安全性、高性能和易学易用。要编写一个 Java 策略模式,可以按照以下步骤进行:
1. 首先,定义一个接口,它将是所有具体策略的基础。该接口应包含一个方法,以实现策略的核心逻辑。
2. 接着,创建一个或多个实现接口的具体策略类。每个策略类应该包含自己的实现,以处理特定的情况。
3. 定义一个使用策略的上下文类。这个类应该包含一个引用策略接口的成员变量,以及一个方法,用于设置当前策略。
4. 在上下文类中,添加一个方法,它将接受一个策略对象作为参数,并将其设置为当前策略。
5. 最后,实例化一个上下文对象,并调用它的方法,以执行所需的操作。
下面是一个简单的示例代码,演示了如何使用 Java 编写一个策略模式:
```
// 定义策略接口
interface Strategy {
int doOperation(int num1, int num2);
}
// 创建具体策略类
class OperationAdd implements Strategy {
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
class OperationSubtract implements Strategy {
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
class OperationMultiply implements Strategy {
public int doOperation(int num1, int num2) {
return num1 * num2;
}
}
// 定义上下文类
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 Main {
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 OperationSubtract());
System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
context = new Context(new OperationMultiply());
System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
}
}
```
在这个示例中,我们首先定义了一个 Strategy 接口,它包含一个 doOperation() 方法。然后,我们创建了三个具体策略类,它们实现了这个接口,并提供了自己的实现。
接下来,我们定义了一个上下文类 Context,它包含一个 Strategy 成员变量。我们还为 Context 类添加了一个 executeStrategy() 方法,它将接受两个数字作为参数,并根据当前策略执行适当的操作。
最后,在 main() 方法中