IOC(控制反转)与DI(依赖注入)

什么是控制反转

控制反转(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中有两种自动依赖项注入方式,即 HiltDagger 2 ,官方推荐使用Hilt。Hilt 在依赖项注入库Dagger的基础上构建而成,提供了一种将Dagger纳入Android应用的标准方法,因而能够受益于 Dagger 提供的编译时正确性、运行时性能、可伸缩性和 Android Studio 支持。

hilt的具体使用这里不作更多的叙述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值