IOC
Android 推荐应用架构建议将代码划分为多个类,以从分离关注点这一原则(其中,层次结构的每个类都具有一项已定义的责任)中受益。这就需要将更多更小的类连接在一起,以实现彼此之间的依赖关系。
IOC
android ioc 技术
源码地址:https://github.com/wangchongwei/ioc.git
dagger
dagger使用:
主要使用了工厂模式、APT技术
利用注解处理器,变异时生成大量代码,完成自动注入
dagger 的使用主要作用:不必编写冗长乏味且容易出错的样板代码。
优势
Dagger 可以执行以下操作,使您无需再编写冗长乏味又容易出错的样板代码:
生成您在手动 DI 部分手动实现的 AppContainer 代码(应用图)。
为应用图中提供的类创建 factory。这就是在内部满足依赖关系的方式。
重复使用依赖项或创建类型的新实例,具体取决于您如何使用作用域配置该类型。
为特定流程创建容器,操作方法与上一部分中使用 Dagger 子组件为登录流程创建容器的方法相同。这样可以释放内存中不再需要的对象,从而提升应用性能。
只要您声明类的依赖项并指定如何使用注释满足它们的依赖关系,Dagger 便会在构建时自动执行以上所有操作。Dagger 生成的代码与您手动编写的代码类似。在内部,Dagger 会创建一个对象图,然后它可以参考该图来找到提供类实例的方式。对于图中的每个类,Dagger 都会生成一个 factory 类型类,它会使用该类在内部获取该类型的实例。
在构建时,Dagger 会走查您的代码,并执行以下操作:
构建并验证依赖关系图,确保:
- 每个对象的依赖关系都可以得到满足,从而避免出现运行时异常。
- 不存在任何依赖循环,从而避免出现无限循环。
生成在运行时用于创建实际对象及其依赖项的类。