MVC、MVP、MVVM各自介绍及使用场景
MVC
--model 模型层 业务逻辑
--view 视图层 .xml
--controller 控制层 Activity
MVC模式存在的问题:Activity责任不明、十分臃肿
Activity由于其生命周期的功能,除了担任View层的部分职责(加载应用的布局、接受用户操作),还要承担Controller层的职责(业务逻辑的处理)
随着界面的增多 & 逻辑复杂度提高,Activity类的代码量不断增加,越加臃肿
MVP
model模型层 业务逻辑
view视图层 view的绘制,用户交互 Acitivity
presenter呈现层 连接V层、M层,完成两者之间的交互。
优点:(对比MVC模式)
1.耦合度更低:通过Presenter实现数据和视图之间的交互,完全隔离了View层与Model层,二者互不干涉
避免了View、Model的直接联系,又通过Presenter实现两者之间的沟通
2.Activity代码变得更加简洁:简化了Activity的职责,仅负责UI相关操作,其余复杂的逻辑代码提取到了Presenter层中进行处理
MVVM
model 模型层
view 视图层
viewmodel View的数据模型和Presenter的合体
为什么要使用MVVM
MVVM配合Data Binding使用,可以实现双向的交互,使得视图和控制层之间的耦合程度进一步降低,分离更为彻底,同时减轻了Activity的压力。
DataBinding
MVVM的最佳使用方式是MVP+DataBinding,MVVM可以实现数据直接和View层的控件绑定,和监听事件的绑定。
关于MVVM的具体使用,我会在后期学习之后,把demo放上来
最后
近些年来,Android架构模式有很多,我们比较熟知的有MVC,MVP以及MVVM,目前Android市场中使用最多的应该是MVP架构,虽然MVVM结合DataBing看似更加方便,但在一般公司中使用的还是比较少。其实模式这种东西就像我们个人习惯,觉得代码怎么放置会更方便,慢慢的就形成了一种标准化的模式,好的代码模式更容易后期维护与团队分工合作,但是其实说句心里话,刚接触这些模式的时候,感觉代码的类变多了,但是从逻辑上着实简洁了很多。建议还是稳中求实,不要为了架构而架构。
网友评论