##MVC分层
>View层:对应于布局文件
>Model层:业务逻辑和实体类
>Controller层:对应于Activity,但是View层对应的布局文件可以做的事情很少,实际上数据的绑定,事件的处理都是在Activity中完成的,这样导致Activity看起来像View层又想Controller层,导致Activity中的代码很臃肿
##MVP分层
>View层:Activity,布局文件,负责布局绘制以及与用户交互.
>Model层:业务逻辑与实体类
>Presenter层:是View层与Model层之间的桥梁
mvp与mvc对比图(左边是MVP,右边为mvc)总结:Android本身就是采用的MVC模式,对于很多Android初学者可能会有这样的经历,写代码的时候,不管三七二十一都往Activity中写,当然我当初也是这么干的,根本就没有什么框架的概念,只要能实现某一个功能就很开心了,没有管这么多。当然项目比较小还好,一旦项目比较大,你会发现,Activity所承担的任务其实是很重的,它既要负责页面的展示和交互,还得负责数据的请求和业务逻辑之类的工作,相当于既要打理家庭,又要教育自己调皮的孩子,真是又当爹又当妈。。。,那该怎么办呢?这时候Presenter这个继父来到了这个家庭。Presenter对Activity说,我来了,以后你就别这么辛苦了,你就好好打理好View这个家,我专门来负责教育Model这孩子,有什么情况我会向你反映的。这时Activity流下了幸福的眼泪,从此,Model、View(Activity)、Presenter一家三口过上了幸福的生活。。。由于Presenter(我们自己建的类)的出现,可以使View(Activity)不用直接和Model打交道,View(Activity)只用负责页面的显示和交互,剩下的和Model交互的事情都交给Presenter做,比如一些网络请求、数据的获取等,当Presenter获取到数据后再交给View(Activity)进行展示,这样,Activity的任务就大大减小了。
网友评论