Android的碎片fragment和activity之前的关系 以及MVP模式详解

参考原文:https://www.jianshu.com/p/bbb3b77d47eb

GoogleMVP机制:https://blog.csdn.net/jungle_pig/article/details/65626469

1、activity与fragment传值

当activity动态加载fragment时可以通过fragment的setArguments()传入值;

在fragment类中通过fragment的getArguments()方法获得传入的值 ;

MVP结构图:

参考原文:https://blog.csdn.net/swust_zeng_zhuo_k/article/details/78760947
 创建MVP模式是需要经过一下几个步骤:
 1、创建IPresenter接口,把所有的业务逻辑的接口搜放在这里,并创建他的实现PresenterImpl,
 2、创建IView接口,把所有的视图逻辑的接口都放在这里,其实现类是Activity/Fragment
 3、由UML试图可以看出,Activity包含了一个IPresenter,而PresenterImpl包含了IVew并依赖了Model,
     Activity只保留了对IPresenter的调用,其他的都放在PresenterImpl中实现,
 4、model并不是必须有的,但是一定会有Presenter和View
 

注意:虚线三角箭头:实现;虚线箭头:依赖; 实线三角:关联

Google提出的一种MVP实现方式,步骤:

1.BasePresenter

2.BaseView

两个接口分别作为Presenter和View的基类,仅定义了最基本的方法,具体页面的view和presenter则分别定义继承的接口,添加属于自己页面的方法。

3.Contract 契约类

这是Google MVP与其他实现方式的不同之一,契约类用于定义同一个界面的view和presenter的接口,通过规范的方法命名或注释,可以清晰的看到整个页面的逻辑。

4.具体的Impl类

Fragment实现View接口,这里使用Google推荐的创建Fragment实例的static方法newInstance(),将fragment必备的参数传入。

Presenter实现类,提供一个参数为对应View的构造器,持有View的引用,并调用View的setPresenter()方法,让View也持有Presenter的引用,方便View调用Presenter的方法。

5.最后就是Activity

创建view以及presenter实例,并将二者联系起来。

 下图是Google官方Demo:todo-mvp模式的架构图

猜你喜欢

转载自blog.csdn.net/qq_33360506/article/details/82835042