java设计并实现符合单一职责原则、里氏替换原则、组合复用原则的计算器演示系统代码
时间: 2024-01-31 10:04:19 浏览: 26
非常好的问题,我可以回答。以下是 Java 设计并实现符合单一职责原则、里氏替换原则、组合复用原则的计算器演示系统代码:
```
//符合单一职责原则:
public class Calculator {
public int calculate(int num1, int num2, String operator) {
switch (operator) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "*":
return num1 * num2;
case "/":
return num1 / num2;
default:
throw new IllegalArgumentException("Invalid operator: " + operator);
}
}
}
//符合里氏替换原则:
public class AdvancedCalculator extends Calculator{
public int square(int num) {
return num * num;
}
public double sqrt(int num) {
return Math.sqrt(num);
}
}
//符合组合复用原则:
public class CalculatorDemo {
private final Calculator calculator;
private final AdvancedCalculator advancedCalculator;
public CalculatorDemo(Calculator calculator, AdvancedCalculator advancedCalculator) {
this.calculator = calculator;
this.advancedCalculator = advancedCalculator;
}
public void demo() {
System.out.println(calculator.calculate(1, 2, "+"));
System.out.println(calculator.calculate(3, 4, "-"));
System.out.println(advancedCalculator.square(5));
System.out.println(advancedCalculator.sqrt(6));
}
}
```
这里的 Calculator 类负责基本的加减乘除计算,它只有一个明确的职责。AdvancedCalculator 类继承了 Calculator 类,它扩展了计算器的计算功能,同时还保持了基本计算器所具有的一些功能。而 CalculatorDemo 则组合了 Calculator 和 AdvancedCalculator 对象,展示了它们的基本和高级计算功能。这样,代码不仅简单易懂,而且易于扩展和维护,符合单一职责原则、里氏替换原则、组合复用原则。