MVVM、MVC、MVP 的区别
- MVC:
- 组成
- Model:
- View
- Controller
- 处理业务逻辑: 决定如何通知 Model 更新数据
- 通信流程: 单向通信
- View 捕捉用户输入后通知 Controller
- Controller 处理用户输入后调用 Model 更新数据
- Model 通知 View 更新
- 缺点: View 和 Model 耦合
- MVP:
- 组成
- Model
- 数据管理: 存储、更新数据
- 返回数据给 Presenter
- View
- Presenter
- 处理业务逻辑: 决定如何通知 Model 更新数据
- 更新 View
- 通信流程
- View 捕捉到用户输入后通知 Presenter
- Presenter 处理用户输入后调用 Model 更新数据
- Model 返回数据给 Presenter
- Presenter 根据返回数据更新 View
- 优点: View 和 Model 之间没有直接联系
- 缺点: Presenter 可能会变得臃肿
- MVVM
- 组成
- Model
- View
- 显示界面
- 捕捉用户输入
- 双向绑定: 和 ViewModel 自动同步数据
- ViewModel
- 处理业务逻辑: 负责将 Model 中的数据转换给 View 使用
- 双向绑定: 和 View 自动同步数据
- 通信流程
- View 捕捉到用户输入后通知 ViewModel
- ViewModel 处理用户输入后调用 Model 更新数据
- Model 返回数据给 ViewModel
- ViewModel 转换数据后自动同步到 View 上