mvp模式的计算器代码
时间: 2024-03-24 18:41:12 浏览: 23
好的,下面是一个简单的计算器 MVP 模式的代码示例:
首先是 `Model` 层:
```java
public class CalculatorModel {
public double calculate(double num1, double num2, String operator) {
double result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
return result;
}
}
```
然后是 `View` 层:
```java
public interface CalculatorView {
void showResult(double result);
}
```
最后是 `Presenter` 层:
```java
public class CalculatorPresenter {
private CalculatorModel calculatorModel;
private CalculatorView calculatorView;
public CalculatorPresenter(CalculatorView calculatorView) {
this.calculatorView = calculatorView;
calculatorModel = new CalculatorModel();
}
public void calculate(double num1, double num2, String operator) {
double result = calculatorModel.calculate(num1, num2, operator);
calculatorView.showResult(result);
}
}
```
在 `Activity` 或 `Fragment` 中,我们可以这样使用:
```java
public class CalculatorActivity extends AppCompatActivity implements CalculatorView {
private CalculatorPresenter calculatorPresenter;
// 省略其它代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
calculatorPresenter = new CalculatorPresenter(this);
// 省略其它代码
}
// 省略其它代码
public void onCalculateClicked(View view) {
double num1 = Double.parseDouble(editTextNum1.getText().toString());
double num2 = Double.parseDouble(editTextNum2.getText().toString());
String operator = spinnerOperator.getSelectedItem().toString();
calculatorPresenter.calculate(num1, num2, operator);
}
@Override
public void showResult(double result) {
textViewResult.setText(String.valueOf(result));
}
}
```
这样,我们就完成了一个简单的 MVP 模式的计算器。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)