课程进度 77% · 第9/11章第9/11章 · 标签 1/2
— 1 —
MVP 架构模式
MVP(Model-View-Presenter)是 Android 中常用的架构模式。View 负责 UI 展示,Presenter 负责业务逻辑,Model 负责数据层。
java
1
// MVP 架构实现
2
public interface LoginView {
3
void showLoading();
4
void hideLoading();
5
void onLoginSuccess(String token);
6
void onLoginError(String error);
7
}
8
9
public class LoginPresenter {
10
private LoginView view;
11
private LoginModel model;
12
13
public LoginPresenter(LoginView view) {
14
this.view = view;
15
this.model = new LoginModel();
16
}
17
18
public void login(String username, String password) {
19
view.showLoading();
20
model.login(username, password, new Callback() {
21
22
public void onSuccess(String token) {
23
view.hideLoading();
24
view.onLoginSuccess(token);
25
}
26
27
28
public void onError(String error) {
29
view.hideLoading();
30
view.onLoginError(error);
31
}
32
});
33
}
34
}
— 2 —
MVVM 架构模式
MVVM(Model-View-ViewModel)是 Google 官方推荐的架构,结合 Jetpack 组件使用效果最佳。
java
1
public class MyViewModel extends ViewModel {
2
private MutableLiveData<String> data = new MutableLiveData<>();
3
4
public LiveData<String> getData() {
5
return data;
6
}
7
8
public void fetchData() {
9
// 在后台线程加载数据
10
data.setValue("加载中...");
11
new Thread(() -> {
12
String result = loadFromNetwork();
13
data.postValue(result);
14
}).start();
15
}
16
}
17
18
// 在 Activity 中使用
19
MyViewModel viewModel = new ViewModelProvider(this).get(MyViewModel.class);
20
viewModel.getData().observe(this, text -> {
21
textView.setText(text);
22
});
◆
架构对比
- MVC —— 早期 Android 模式,Activity 既当 View 又当 Controller
- MVP —— View 与 Presenter 通过接口通信,可测试性强
- MVVM —— ViewModel 与 LiveData/Flow 结合,自动管理生命周期
- MVI —— Model-View-Intent,单向数据流,状态可预测