MVC-MVP-MVVM
MVC
M(model)V(View)C(Controller)
Model:处理数据,业务逻辑
View:处理界面的显示结果(xml布局)
Controller:控制model层和View层的通信
MVP
M(Model)V(View)P(Presenter)
Presenter:使用接口的方式进行交互,较低耦合,使View与Model交互的纽带,接收model层的数据,进行过相应处理之后交给View层。
View层:纯Activity布局的绑定
Model:业务逻辑的实现
MVVM
VM(ViewModel):视图模型,暴露公共属性的和命令的视图的抽象,在MVVM中既没有Controller也没有Presenter,而是通过绑定器实现的View和Model之间的通信
改进
MVC | MVP | MVVM |
---|---|---|
Controller | Presenter | ViewModel |
直接使用View | 不直接使用View | 使用View |
优点:
1.低耦合(分离View和Model)
2.可重用性:可以让很多视图使用C/P/VM
3.独立开发:逻辑和界面独立开发
4.单元测试:因为分离了视图和Model,所以可以进行针对性测试