ReadHub源码阅读笔记(二)dagger+MVP

本文介绍了如何在ReadHub项目中使用Dagger2结合MVP模式进行开发。传统的MVP模式中,view层手动实例化presenter,而引入Dagger2后,presenter的实例化由框架自动完成。文章详细阐述了BaseContract、BaseActivity、BasePresenter的定义以及在具体Fragment中的应用,展示了如何通过依赖注入简化代码结构,提高代码复用性。
摘要由CSDN通过智能技术生成

先来思考一般的MVP模式,view层(活动和碎片)持有一个presenter并实例化,presenter通过构造器或set方法持有view引用。然后view层调用presenter方法,prensenter获取数据后调用view方法(界面操作)完成一次完整响应。

引入dagger后view层不再需要手动实例化presenter,由框架注入即可,这就是区别。

1.首先定义view和presenter的抽象BaseContract:

public interface BaseContract {

    interface BasePresenter<T extends BaseContract.BaseView> {
        void attachView(T view);

        void detachView();
    }

    interface BaseView {
  

presenter通过泛型声明关联的view类型,所需必要操作有获取view引用和解绑。view基本操作这里作者定义了一些网络错误显示进度条等操作,不是必需。

2.接下来看BaseActivity:(fragment一样)

public abstract class BaseActivity<T extends BaseContract.BasePresenter> extends RxAppCompatActivity implements BaseContract.BaseView {
    @Nullable
    @Inject
    protected T mPresenter;


持有一个pre

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值