MVC & MVP & MVVM
这三个设计模式很多文章都在分析和比较它们,DK’s Lab中有一篇是我看过的介绍的最简单和通俗易懂的,不清楚的同学可以去看一下,文章的地址是http://dk-exp.com/。
看过前两篇文章的同学,应该可以感觉到Android-BaseLine这个框架可以很迅速的编写代码。细心的同学可能会发现,V(或C)和M层的代码耦合度相当的低,可以基本做到V和M代码分开编写,在项目快速迭代交付的时代,我们完全可以拿着接口文档,直接开始撸代码了,并且做UI的同学(一般是新手,哈哈哈)可以专注写界面,然后调用M层的方法即可。
看到这里,也许你已经意识到Android-BaseLine实现的这种模式不就是MVP吗?
在上篇文章中,我们的P(Presenter)就是我们的ModuleLogic,View层已经不是以前MVC时代的xxx.xml了(谷歌把Android中的C和V捆得太死了),Android-BaseLine中的V层就是Activity(只需要继承自BasicActivity,不需要定义Interface接口回调),而M层可以是我们的网络层、持久层等。
Android-BaseLine对于MVP的实现大概分为这几部:
1. V层(Activity、Fragment,其实可以使任何调用P层的对象),持有P层BaseLogic的子类
2. P层(继承BaseLogic),编写业务方法(返回值都是void),调用M层(网络、数据库,或者你自己的方法)。
3. M层实现可以是任何(可以随时替换网络层框架等组件)
一句话就是V持有P,P调用M,返回最终结果给V。