谷歌官方MVP基础架构总结
项目架构图:
在官方的MVP实现中,类的分类是以功能划分到一个包中。
具体的实现流程,下图为其中的一个模板:
Activity
activity在此MVP架构中更主要的功能是全局的控制者,负责创建Fragment 和 Presenter实例,并把两者绑定起来。
Contract
contract(契约)类 在 MVP 架构中的作用是 统一管理View层和Presenter层的所以接口,这样可以很方便的确定这两层的功能,方便后期的维护。
Fragment
官方示例中呢Fragment做为View层的实现,方便后期维护和更改,再者Fragment比较灵活。而且把View层负担的无形中又减轻。
从上面可以看到setPresenter( )方法,该方法呢继承于父类,通过该方法呢View 层就获得Presenter的实例,这样就能调用Presenter 来做操作。其中在Fragment的onResume( )方法中,调用Presenter.start()方法做View层需要的初始加载。
Presenter
Presenter层中在其构造函数中,得到View层的实例后,就调用View.setPresenter( )方法把实例传递给View层。
在start( )方法中又调用封装好的对于数据的加载和展示。这样呢对于View层和Presenter层就很好的划分出来了。
Model层
官方的model层,对于所以数据渠道的来源和获取加了一层封装。而不是直接放入Presenter层中。当Presenter层需要数据时呢调用model层的对外操作类就好了,并在需要的时候传入回调。
此图更能说明的是Model的结构:
此为他人分析model层的链接