MVPTest

作者: 聪聪的豆芽 | 来源:发表于2016-07-28 16:45 被阅读99次

    总结mvp的使用:

    目录结构

    项目的目录结构data和main是主要的,base中的BasePresenter和BaseView提取了共用内容以及做出了最基本的规范。

    在实际开发中,data和main两个目录可有不同的人来同事开发,互不影响,前提是定义好接口规则。

    先看main下面的:

    MainContract中定义了View和Presenter接口:

    MainContract

    MainFragment实现了MainContract中的View接口:

    MainFragment

    MainPresenter实现了MainContract中的Presenter接口:

    MainPresenter

    在MainPresenter里面构造函数传递了View和ShareRepository,这个也很好理解,Presenter里面处理完逻辑后需要调用View和Data。再则就是View有时候也需要Presenter,比如:当有账号密码输入后点击登录时,这时候就需要调用Presenter的方法。

    MainAy实现了data、view、presenter的绑定:

    MainAy
    接下来是data部分

    目录结构:

    data

    ShareDataSource为接口定义。ShareLocalDataSource、ShareRemoteSource、ShareDataRepository均实现了此接口。
    local为本地数据模型,remote为网络数据模型,而ShareRepository为两则的逻辑综合,在这里判断调用本地还是网络、数据缓存等,这里面主要是对数据的操作。

    总结

    实际上并非所有的逻辑都在Presenter中,我的理解是MainFragment是内容区域,但是比如标题栏,左滑栏这些还是属于Activity,因为这些地方一般都是跳转区域,当然具体情况具体调整。 在data中Source为数据来源,即本地还是网络,而Repository为来源的综合,这里面加上了本地、网络的逻辑。
    也就是说,Activity为功能的初始化、拼凑,Fragment为View的显示,Presenter为逻辑部分,data为数据的处理(缓存、请求等)。
    再者实际上data下可以以一个大的功能划分,而非按界面来做。当然如果一个界面本身就非常简单的话也没必要追求拆分。

    相关文章

      网友评论

        本文标题:MVPTest

        本文链接:https://www.haomeiwen.com/subject/utgojttx.html