java去除if else
时间: 2023-11-11 22:03:05 浏览: 64
如何优雅的替换掉Java代码中的if else
5星 · 资源好评率100%
可以使用策略模式来去除 if else。具体实现方式是将每个条件分支封装成一个策略类,然后在调用时根据不同的情况选择不同的策略类进行处理。这样可以避免 if else 带来的代码臃肿和可读性差的问题。
举个例子,假设我们有一个计算器程序,需要根据用户输入的操作符进行相应的计算。传统的实现方式可能是使用 if else 来判断不同的操作符,然后执行相应的计算逻辑。但是这样会导致代码难以维护和扩展。使用策略模式可以将每个操作符对应的计算逻辑封装成一个策略类,然后在调用时根据用户输入的操作符选择相应的策略类进行处理。
下面是一个简单的示例代码:
```
// 定义策略接口
interface CalculatorStrategy {
int calculate(int a, int b);
}
// 定义加法策略
class AddStrategy implements CalculatorStrategy {
@Override
public int calculate(int a, int b) {
return a + b;
}
}
// 定义减法策略
class SubtractStrategy implements CalculatorStrategy {
@Override
public int calculate(int a, int b) {
return a - b;
}
}
// 定义乘法策略
class MultiplyStrategy implements CalculatorStrategy {
@Override
public int calculate(int a, int b) {
return a * b;
}
}
// 定义除法策略
class DivideStrategy implements CalculatorStrategy {
@Override
public int calculate(int a, int b) {
return a / b;
}
}
// 定义计算器类
class Calculator {
private CalculatorStrategy strategy;
public Calculator(CalculatorStrategy strategy) {
this.strategy = strategy;
}
public int calculate(int a, int b) {
return strategy.calculate(a, b);
}
}
// 使用示例
Calculator calculator = new Calculator(new AddStrategy());
int result = calculator.calculate(1, 2); // 3
calculator = new Calculator(new SubtractStrategy());
result = calculator.calculate(3, 2); // 1
calculator = new Calculator(new MultiplyStrategy());
result = calculator.calculate(2, 3); // 6
calculator = new Calculator(new DivideStrategy());
result = calculator.calculate(6, 3); // 2
```
阅读全文