Android中MVP模式(一)

2019-08-10  本文已影响0人  大佬不是大佬

1、什么是 MVP模式?

    同 MVC一样,是一种编程模式和思想,是一种架构。

2、MVP和MVC。

    M:Model,代表业务数据。

    V:View,代表视图

    C:Controller,代表控制器

用户通过界面操作 View,相应的动作传递给 Controller层,而 C层根据业务逻辑操作 Model层,而最终 M层变化同步更新到视图层。

3、Android中的 MVC

    Activity对应的视图界面就是 View层;

    数据库文件,Sharedprefrence,内存缓冲,磁盘缓冲等数据内容对应 Model层。

    C层基本由 Activity层面进行。

4、Android中 mvc基本动作流程

1,layout制定相应的布局文件,然后显示在 Activity上,用于显示天气信息。对应于 View层,这里的 View并不是 Android开发中组件的 view而是对视图的统称。

2、Activity在 onCreate()或者 onResume()去服务器获取数据,或者通过界面上的某按钮去启动获取数据的任务,这里就对应到 View->Controller,只不过 View和 Controller是由 Activity完成。

3、C层获得数据后,分别存在内存、磁盘和数据库中,并且数据获取成功或者失败后,Activity界面需要同步更新状态。

4、MVP的出现

    因为 Activity对应了 MVC模式中的 V和C,代码臃肿,所以出现了 MVP模式。

Model:M层负责数据。

View:V层负责 Activity上的布局。

Presenter:P层负责中间纽带。

MVP开发在 Android中的基本流程:

    1、View层定义 View.interface,用来定义 View的行为。一般由 Activity或者 Fragment来实现这个接口,定义了 View视图的各种变化,如设置Textview,加载对话框,更新进度条等。

    2、Model层定义 Model.interface,用来定义数据层发生变化时的通知接口,因为 M不能与C直接交互,所以它与 Presenter交互,然后通过 Presenter间接达到与 View交互。

    3、Presenter负责具体 业务逻辑,请求数据,把数据送到 Model,或者监听 Model的数据变化,接受 View层的动作,负责通知 View层的视图变化。

5、MVP与MVC的重要区别:

    MVC中 Model、VIew、Controller之间互相通信。

    MVP:Model与Presenter通信,View与Presenter通信,而Model与View之间没有通信。

    MVC开发模式中,分工每个人负责相应的 Activity,再后来某 Activity变得越来越重要,代码越来越多,会造成某个人的开发任务中间,并且其他人帮不上忙。

    MVP则可以将 Activity细分,分为 View和 Presenter两部分,让一人开发 View,另一人负责 Presenter部分。并且 V的变动对P影响不大,越复杂优势越大。

Android中MVP模式讲解及实践

上一篇下一篇

猜你喜欢

热点阅读