什么是控制反转
控制反转(Inversion of Control),一种设计模式,spring框架的核心。目的:降低耦合性。
我们传统写代码:类A需要类B的对象,在A里面直接new一个B,然后使用B。A既负责B的创建,又使用B。这样耦合度太高
IOC写代码:类A需要类B的对象,即A依赖B,但A不管B的创建过程,只需要拿到B的对象即可。基于这个原则,将B的创建交给一个第三方容器,容器负责创建并维护类实例。某个类需要使用其他类的对象,容器直接将这个类的对象注入到使用的类里。这就叫控制反转和依赖注入。
方式
1、基于反射的解决方案,可在运行时连接依赖项。 2、静态解决方案,可生成在编译时连接依赖项的代码
在Android开发中,Dagger是一款支持Java、Kotlin 和 Android 的热门依赖项注入库,它提供了完全静态和编译时依赖项,解决了基于反射的解决方案(如 Guice)的诸多开发和性能问题,已经被广泛使用在Android应用开发中
Android中有两种自动依赖项注入方式,即 Hilt 和 Dagger 2 ,官方推荐使用Hilt。Hilt 在依赖项注入库Dagger的基础上构建而成,提供了一种将Dagger纳入Android应用的标准方法,因而能够受益于 Dagger 提供的编译时正确性、运行时性能、可伸缩性和 Android Studio 支持。
hilt的具体使用这里不作更多的叙述了。
|