MVC、MVP、MVVM

一、MVC

MVC的全称是Model View Controller ,即模型(Model)-视图(View)-控制器(Controller);

   Controller:Activity、Fragment

    View :layout 、View控件                                                                                          

   Model:数据处理(网络请求、SQL等)

MVC优缺点:

 优点:一定程度上实现了Model与View的分离,降低了代码的耦合性;

缺点:Controller与View难以完全解耦,并且随着项目复杂度的提升,Controller将越来越臃肿;

二、MVP

MVP即Model-View-Presenter模型;

MVP与MVC的差别:

1、Model与View不再直接进行通信,而是通过中间层Presenter来实现;

2、Activity的功能被简化,不再充当控制器,主要来负责View层的工作;

MVP优缺点:

优点:解决了MVC中Controller与View过度耦合的缺点,职责划分明显,更加易于维护;

缺点:接口数量多,项目复杂度升高;随着项目复杂度的提升,Presenter层将越来越臃肿;

使用MVP的建议

1、接口规范化(封装父类接口以减少接口的使用量)

2、使用第三方的插件自动生成MVP代码

3、对于一些简单的界面,可以选择不使用框架

4、根据项目复杂程度,部分模块可以选择不使用接口

三、MVVM

MVVM即Model-View-ViewModel模型;MVVM在MVP的基础上实现了数据视图的绑定(DataBinding),当数据变化时,视图会自动更新;反之,当视图发生变化时,数据也会自动更新。

1、减少了接口数量

2、告别繁琐findViewById操作

MVVM优缺点:

优点:实现了数据和视图的双向绑定,极大的简化代码;

缺点:bug难以调试,并且databinding目前还存在一些编译问题;

总结:

MVC:学习简单但是解耦不够彻底

MVP:解耦更加彻底,学习起来也相对比较简单,但是代码相对比较繁琐

MVVM:代码逻辑非常简洁,但是学习成本较大


                                            

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容