采用mvp模式计算器源代码
时间: 2023-07-18 22:44:02 浏览: 59
以下是一个简单的计算器应用程序的 MVP 架构示例:
Model(模型):
```java
public class CalculatorModel {
public int add(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
public int subtract(int firstNumber, int secondNumber) {
return firstNumber - secondNumber;
}
public int multiply(int firstNumber, int secondNumber) {
return firstNumber * secondNumber;
}
public int divide(int firstNumber, int secondNumber) {
if (secondNumber == 0) {
return 0;
}
return firstNumber / secondNumber;
}
}
```
View(视图):
```java
public interface CalculatorView {
void showResult(String result);
void showError(String error);
}
```
Presenter(表示层):
```java
public class CalculatorPresenter {
private CalculatorView view;
private CalculatorModel model;
public CalculatorPresenter(CalculatorView view) {
this.view = view;
model = new CalculatorModel();
}
public void onAddButtonClicked(int firstNumber, int secondNumber) {
int result = model.add(firstNumber, secondNumber);
view.showResult(String.valueOf(result));
}
public void onSubtractButtonClicked(int firstNumber, int secondNumber) {
int result = model.subtract(firstNumber, secondNumber);
view.showResult(String.valueOf(result));
}
public void onMultiplyButtonClicked(int firstNumber, int secondNumber) {
int result = model.multiply(firstNumber, secondNumber);
view.showResult(String.valueOf(result));
}
public void onDivideButtonClicked(int firstNumber, int secondNumber) {
int result = model.divide(firstNumber, secondNumber);
if (result == 0) {
view.showError("Cannot divide by zero");
} else {
view.showResult(String.valueOf(result));
}
}
}
```
在这个示例中,Model(计算器的业务逻辑)和 View(UI)是相互独立的。Presenter(表示层)通过将 View 和 Model 分离开来,使得程序变得更容易维护和测试。现在,我们可以在 Activity 或 Fragment 中使用 Presenter 来控制计算器的行为,从而实现 MVC 架构。