Dagger2使用心得

简介

Dagger2目前是有Google公司接手。
它是一个依赖注入框架,可以使类与类之间解耦,较少过分依赖。比如在A类中引用B类的实例,通常方法是在A类中new一个B类,但是这样违背了单一职责原则;当我们想创建实例B的时候传入参数,就要改B类的构造函数,不符合开闭原则。当然这样写也无可厚非,但是不利于快速开发和维护,后期版本迭代必然会产生很多不必要的工作量,烦啊!

官方Github地址

官方主页

项目中结合MVP设计

Module

<pre>
@Module
public class PhotoModule {

private final PhotoActivity mView;
private final String mPhotoId;

public PhotoModule(PhotoActivity view, String photoId) {
    mView = view;
    mPhotoId = photoId;
}

@PerActivity
@Provides
public IBasePresenter providePhotoPresenter() {
    return new PhotoPresenter(mView, mPhotoId);
}

}
//PhotoPresenter是P层用来处理业务逻辑,比如网络请求就放在这里
</pre>

Component

<pre>
@PerActivity
@Component(modules = PhotoModule.class)
public interface PhotoComponent {
void inject(PhotoActivity activity);
}
</pre>

Activity

PhotoActivity中调用
<pre>
@Override
protected void initInjector() {
DaggerPhotoComponent.builder()
.photoModule(new PhotoModule(this, mPhotoId))
.build()
.inject(this);
}
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,724评论 25 709
  • 前言 Dagger2 当前Android流行的依赖注入框架。未来Android应用的趋势也许是MVP+Retrof...
    DorisSunny阅读 5,148评论 0 3
  • 出墨君的朋友圈最近颇不宁静。 各种悲欢离合,各种悔不当初,各种读书无用,各种不想上班……貌似邪神入侵,灵魂附体,却...
    熊出墨请注意阅读 1,404评论 0 0
  • 逆旅依凉月, 羁人伫晚阳。 更深夜静忆高堂, 何事奔忙未享绕膝旁。
    临风诵书阅读 1,651评论 0 0
  • 左肋不经允许下疼痛 哮喘的空调反复阻止入眠 深夜适合思念和痛哭 而我 我使尽浑身解数平静 我希望能控制梦境 在众神...
    一页北风阅读 1,066评论 2 2