iOS
[iOS] Dependency Injection(DI) 의존성 주입
Kim_Baechu
2021. 9. 23. 12:15
장점
테스트에 용이
종속성, 결합도 감소
유연성, 확장성 증가
의존관계 설정 가능
의존성
class SomeController {
var fooManager = FooManager()
}
SomeController는 FooManager 클래스에 의존관계가 생깁니다.
의존성 주입하는 방법이 3가지를 소개합니다.
Initializer Injection
class SomeController {
var fooManager: FooManager
init(fooManager: FooManager) {
self.fooManager = fooManager
}
}
let manager = FooManager()
var someController = SomeController(fooManager: manager)
Property Injection
class SomeController {
var fooManager: FooManager?
}
let manager = FooManager()
var someController = SomeController()
someController.fooManager = manager
Method Injection
class SomeController {
var fooManager: FooManager?
func fooManager(using manager: FooManager) {
self.fooManager = manager
}
}
var someController = SomeController()
someController.fooManager(using: FooManager())
인수를 취하는 것이 DI의 핵심 개념입니다.
참고
https://theswiftdev.com/swift-dependency-injection-design-pattern/
https://medium.com/@jang.wangsu/di-dependency-injection-이란-1b12fdefec4f