티스토리 뷰
장점
테스트에 용이
종속성, 결합도 감소
유연성, 확장성 증가
의존관계 설정 가능
의존성
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
'iOS' 카테고리의 다른 글
[iOS] AVCaptureSession 번역 (0) | 2021.10.22 |
---|---|
[iOS] Setting Up a Capture Session 번역 / iOS 사진, 동영상 카메라 사용법 (0) | 2021.10.22 |
[iOS] Tuist 사용법 - Project Settings (3) (0) | 2021.09.17 |
[iOS] Tuist 사용법 - Dependencies (2) (0) | 2021.09.17 |
[iOS] Tuist 사용법 - 프로젝트 생성 (1) (0) | 2021.09.17 |
댓글
공지사항