Android面试题,架构MVC/MVP/MVVM,包括MVC、MVP、MVVM的介绍和优缺点,以及组件化、模块化的概念问题。
本文是我一点点归纳总结的干货,但是难免有疏忽和遗漏,希望不吝赐教。
转载请注明链接:https://blog.csdn.net/feather_wch/article/details/81282033
有帮助的话请点个赞!万分感谢!
Android面试题-架构MVC/MVP/MVVM
版本:2018/8/16-1(10:31)
MVC
1、Android中MVC是什么?特点?
Model
:针对业务模型建立的数据结构和类(与View无关,只与业务相关)View
:XML/JAVA
或者JS+HTML
进行页面的显示。Activity/Frgament
也承担了View的功能。Controller
:Android
的控制层通常在Activity、Fragment
之中。
本质就是Controller
操作Model
层的数据,并且将数据
返回给View
层展示。
2、Android的MVC的缺点:
Activity
并不是MVC
中标准的Controller
,既有Controller
的职责也有View
的职责,导致Activity
的代码过于臃肿。View层
和Model层
互相耦合,耦合过重
,代码量过大
,不易于开发和维护。
MVP
3、Android中的MVP模式
MVP(Model-View-Presenter)
Model
:主要提供数据的存储功能。Presenter
需要通过Model
存取数据。View
: 负责处理点击事件和视图展示
(Activity、Fragment或者某个View控件
)Presenter
:View和Model
之间的桥梁,从Model
检索数据后返回给View
层。使得M/V
之间不再有耦合关系。
4、MVP和MVC的区别?(2)
MVP
中绝对不允许View
直接访问Model
- 本质是
增加了一个接口
降低一层耦合度
5、MVP的特点
Presenter
完全将Model
和View
解耦,主要逻辑处于Presenter
中。Presenter
和具体View
没有直接关联,通过定义好的接口
进行交互。View
变更时,可以保持Presenter
不变(符合面向对象编程的特点)View
只应该有简单的Set/Get</