如果需要添加更多类型的计算器,应该如何修改现有的代码结构?
时间: 2024-09-10 08:28:49 浏览: 15
如果需要添加更多类型的计算器,你可以在 `CalculatorFactory` 中继续按照工厂模式的方式来处理。具体操作如下:
1. **添加新的具体类**:
比如添加一个新的乘法计算器 `MultiplyCalculator`:
```java
public class MultiplyCalculator implements Calculator {
@Override
public double calculate(double a, double b) {
return a * b;
}
}
```
2. **更新工厂类**:
将新计算器的实例加入到 `calculatorMap` 中:
```java
static {
calculatorMap.put("add", new AddCalculator());
calculatorMap.put("subtract", new SubtractCalculator());
calculatorMap.put("multiply", new MultiplyCalculator());
}
```
3. **使用新的计算器**:
当你需要使用新的运算时,只需从工厂获取对应的 `Calculator` 对象即可:
```java
String operation = "multiply";
Calculator calculator = CalculatorFactory.getCalculator(operation);
//...
```
通过这种方式,你可以轻松地扩展工厂而不影响客户端代码,因为它们只需要操作符作为参数,不需要关心底层的具体实现。