MVC、MVP和MVVM这三种设计模式的区别
     
 
详谈MVC、MVP 和 MVVM
 
  
 
 
MVC、MVP 和 MVVM 这三种设计模式的区别
 
1. 角色职责
 
- MVC 
  - 模型(Model):负责数据处理和业务逻辑,直接与数据库或数据源交互
- 视图(View):负责用户界面的展示和用户交互
- 控制器(Controller):Controller 接收用户输入并处理用户请求,协调 Model 和 View 之间的交互 更新模型和视图
 
- MVP 
  - 模型(Model):负责数据处理和业务逻辑
- 视图(View):负责展示和渲染视图,不包含任何业务逻辑,通过接口与Presenter通信
- 表示器(Presenter):Presenter 作为中间人,负责处理用户交互,调用 Model层 更新数据 并通知 View层 更新显示
 
- MVVM 
  - 模型(Model):负责数据处理和业务逻辑
- 视图(View):负责视图的展示和用户交互 通过数据绑定直接与ViewModel交互
- 视图模型(ViewModel):ViewModel 作为 Model 和 View 之间的桥梁,负责提供视图所需的数据和操作;是视图的抽象,封装了视图的状态和行为,通常会暴露可绑定的属性和命令,View通过数据绑定(data binding)与ViewModel绑定
 
2. 数据绑定
 
 
3. 性能和可测试性
 
 
4. 复杂性
 
 
5. 技术依赖
 
 
6. 综合比较
 
| 特征 | MVC | MVP | MVVM | 
|---|
| 复杂性 | 中等 | 高 | 高 | 
| 可测试性 | 中等 | 高 | 高 | 
| 可维护性 | 中等 | 高 | 高 | 
| 灵活度 | 低 | 中等 | 高 | 
 
总结
 
 
如何选择