java策略模式优化ifelse
时间: 2023-07-08 21:39:28 浏览: 51
策略模式可以用来优化大量的if-else语句,提高代码的可读性和可维护性。在Java中,策略模式可以通过定义一个接口和多个实现类来实现。
举个例子,假设我们有一个计算器程序,需要根据用户输入的操作符来执行不同的计算操作。我们可以定义一个接口`Operation`,并在其中定义一个`calculate`方法:
```java
public interface Operation {
double calculate(double num1, double num2);
}
```
然后,我们可以定义多个实现类,每个实现类代表一种不同的计算操作:
```java
public class AddOperation implements Operation {
@Override
public double calculate(double num1, double num2) {
return num1 + num2;
}
}
public class SubtractOperation implements Operation {
@Override
public double calculate(double num1, double num2) {
return num1 - num2;
}
}
// 其他计算操作的实现类
```
最后,在我们的计算器程序中,可以通过一个`Map`来将不同的操作符映射到对应的实现类上:
```java
public class Calculator {
private final Map<String, Operation> operations = new HashMap<>();
public Calculator() {
operations.put("+", new AddOperation());
operations.put("-", new SubtractOperation());
// 其他计算操作的映射
}
public double calculate(String operator, double num1, double num2) {
Operation operation = operations.get(operator);
if (operation == null) {
throw new IllegalArgumentException("Unsupported operator: " + operator);
}
return operation.calculate(num1, num2);
}
}
```
这样,我们就可以通过调用`calculate`方法来执行不同的计算操作,而不需要使用大量的if-else语句了。