软件设计策略模式代码
时间: 2023-07-03 16:07:48 浏览: 83
策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。
以下是一个简单的示例,演示了如何使用策略模式实现一个计算器,可以选择不同的运算策略:
```java
interface Operation {
double calculate(double num1, double num2);
}
class AddOperation implements Operation {
public double calculate(double num1, double num2) {
return num1 + num2;
}
}
class SubtractOperation implements Operation {
public double calculate(double num1, double num2) {
return num1 - num2;
}
}
class Calculator {
private Operation operation;
public void setOperation(Operation operation) {
this.operation = operation;
}
public double calculate(double num1, double num2) {
return operation.calculate(num1, num2);
}
}
public class StrategyDemo {
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setOperation(new AddOperation());
System.out.println(calculator.calculate(10, 5)); // Output: 15.0
calculator.setOperation(new SubtractOperation());
System.out.println(calculator.calculate(10, 5)); // Output: 5.0
}
}
```
在这个例子中,我们定义了一个 `Operation` 接口,其中包含了 `calculate` 方法,用于执行不同的运算。接着,我们实现了两个具体的运算策略:`AddOperation` 和 `SubstractOperation`。最后,我们定义了一个 `Calculator` 类,其中包含了一个 `setOperation` 方法,用于设置当前的运算策略,以及一个 `calculate` 方法,用于执行当前策略的运算。
在 `main` 方法中,我们首先使用 `setOperation` 方法设置了加法运算策略,并调用 `calculate` 方法计算了 10 和 5 的和。接着,我们使用 `setOperation` 方法设置了减法运算策略,并调用 `calculate` 方法计算了 10 和 5 的差。
在这个示例中,我们使用策略模式来实现了一个简单的计算器,允许在运行时选择不同的运算策略。
阅读全文