温馨提示:本文最后更新于
2025-12-19 15:24:43,某些文章具有时效性,若有错误或已失效,请在下方留言。在现代 Android 开发中,依赖注入(Dependency Injection,DI)是一种设计模式,用于简化应用中各个组件之间依赖关系的管理。
依赖注入是一种设计思想:对象不自己创建依赖,而是由外部把依赖“注入”进来。
无 DI
无依赖注入,依赖在类的内部创建, Car 创建了自己的 Engine 对象。
// Engine.kt
class Engine {
// 单表达式函数
fun start() = "Engine Started"
}
// Car.kt
class Car {
// 创建 Engine 对象依赖对象
// 依赖在类的内部创建,Car 创建了自己的 Engine 对象
private val engine = Engine()
fun drive() {
println(engine.start())
}
}
package com.stewednoodles.diapp
import org.junit.Assert.*
import org.junit.Test
class CarTest {
@Test
fun drive() {
Car().drive()
}
}
// 输出
// Engine Started
有 DI
// Engine.kt
class Engine {
// 单表达式函数
fun start() = "Engine Started"
}
class Car(private val engine: Engine) {
// 依赖从外部传入
fun drive() {
println(engine.start())
}
}
class CarTest {
@Test
fun drive() {
val engine = Engine()
val car = Car(engine = engine)
car.drive()
}
}
// 输出
// Engine Started
DI 常见方式
构造函数注入⭐️
class UserRepository(
private val api: UserApi
)
Setter 注入
class UserRepository {
lateinit var api: UserApi
}
不安全(可能忘记注入)
字段注入
@Inject lateinit var repository: UserRepository
Android 框架常见。
© 版权声明
THE END













暂无评论内容