持续更新中、、、
第二次更新: 2018-3-22 10:50
在Activity中通过获取Activity的容器来注入Activity,达到Activity和容器相连
这里面ActivityComponent依赖AppComponent,那么只需要在AppComponent配置各种东西就行了
大体上只需要提供这五个就行了,这里的AppModule和HttpModule都是为了这五个东西而准备的
可以看到,AppModule需要RetrofitHelper, RealmHelper, ImplPreferencesHelper这几个,其他的都好说,不需要依赖其他类,但是RetrofitHelper需要
需要ZhihuApis, GankApis等,这一系列需要Okhttp+Retrofit配合才能生成,所以回到AppComponent,还有一个HttpModule,感觉Module之间可以相互引用,应该是容器自己获取到了所有资源,自动去处理这些事情的,不清楚算法怎么写的,非常棒棒的, 然后的话就是Spring和Structs2里面可以通过接口来注入,这里貌似在AppModule通过一个方法来返回的,不能通过识别子类注入父类的做法。
第一次更新: 2018-03-20 14:36
呃,看了俩天的时间,懵懵懂懂,大致了解了这个东西的用处,依赖注解在以前玩Spring+Mybatis+Structs2的时候也了解过,ButterKnife也有过一些宏观上的理解,这个东西目前没有去了解源码,先大致有个了解,总的来说,使用Component充当容器,里面放类的实例,如果是第三方的类,用Module收集起来,统一处理,自己编写的可以用Inject来处理,至于Scope,Qualifier,Singleton,SubComponent只是对Dagger2的补充。 优点是结构清晰,日后改起来舒服,不需要new,测试方便,大工程用起来效果明显。
优点: 不需要new, 单例线程安全,不论懒汉模式还是饿汉模式, app的全局Component管理各个页面的Component,结构非常清晰,方便测试。
项目学习地址: https://github.com/codeestX/GeekNews
扩展阅读: http://android.jobbole.com/82694/
后续思考: dagger固然是好,但是忘记了google目前把kotlin作为开发标准,那么问题来了,是kotlin还是java,既然有React Native的趋势,那么Kotlin也不可避免的失败,可以接着学。 kotlin放弃。
待持续更新: 2018-3-20 14:35:51