安卓dagger2:

dagger2:
Dagger2是什么?
Dagger2是Dagger的升级版,是一个依赖注入框架,第一代由大名鼎鼎的 Square公司共享出来,第二代则是由谷歌接手后推出的,现在由Google接手维 护.
依赖 :
依赖是指某个模块A要实现某个功能需要其他模块B。 最原始也最简单的的方式是在模块内new一个B的对象出来,这样会造成B的构 造函数修改,需要修改A中的代码,两者耦合度非常高。
依赖注入:
依赖注入是不在A中去创建 B的实例,而是让上层调用者注入一个B的对象,这 样可以让模块A不再因为B的构造方法的修改而改
使用方法:
导入依赖:(版本不同自己修改一下dagger:dagger的版本否则Could not find com.google.dagger:dagger)
implementation"com.google.dagger🗡2.0"
annotationProcessor"com.google.dagger:dagger‐compiler:2.16"
1.创建注入提供者类
2. 提供者创建构造方法
3.给构造方法添加@Inject注解,表明对外提供依赖,并写个方法
3. 在接收注解方创建提供注解类的对象并添加@Inject注解,表明这个对 象需要注入

public class Model implements Contract.Model {
    @Inject
    public Model(){

    }
    @Override
    public void getdate(String data) {

    }
}
  1. 创建注解的桥梁,或者叫注入者。注入者是一个接口,需要用 @Component注解,并且提供一个方法用来表示向谁注入。

在这里插入图片描述
6. 注意到这里可以锤了 7. 锤过之后如果不报错可以在build中找到如下内容
7. 在调用类中加载Dagger,然后就可以调用了
在这里插入图片描述
8. 在调用类中加载Dagger,然后就可以调用了
9. DaggerUtils1Compont.builder().build().inject(this);

如果报dagger2找不到的错误:

项目中:
        maven{ url 'https://maven.aliyun.com/repository/google'}
        maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}
        maven{ url 'https://maven.aliyun.com/repository/public'}
        maven{ url 'https://maven.aliyun.com/repository/jcenter'}

model:
 implementation"com.google.dagger:dagger:2.23.2"
 annotationProcessor"com.google.dagger:dagger‐compiler:2.23.2"

如果还是找不到:
在电脑的这个C:\WINDOWS\system32\drivers\etc

在这里插入图片描述
添加:

#google_android更新
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com127.0.0.1 servserv.generals.ea.com
74.125.237.1 dl-ssl.google.com
127.0.0.1 localhost
203.208.46.146 dl.google.com
74.125.237.1 dl-ssl.google.com

示例代码:(库){
桥梁类(接口)

//在V中获取P
fun getp(mainActivity: MainActivity)
//在P中获取M
fun getm(presenter: Presenter)

//实现类 库

//库
@Module
class MyModel {
    //获取P
    @Provides
    fun getp()=Presenter()
    //获取M
    @Provides
    fun getm()=Model()
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值