오늘도 더 나은 코드를 작성하였습니까?

Koin (Passing Parameters - Injected Parameters) 본문

Koin

Koin (Passing Parameters - Injected Parameters)

hik14 2022. 7. 28. 18:17

모든 definition 에서 injection parameter 를 사용할 수 있습니다.

definition에서 injection하고 사용할 parameter를 정한다.

Passing values to inject

class Presenter(val a : A, val b : B)

val myModule = module {
    single { params -> Presenter(a = params.get(), b = params.get()) }
}

parameter는 parametersOf() 함수를 사용하여 definition로 전달됨.

class MyComponent : View, KoinComponent {

    val a : A ...
    val b : B ... 

    // inject this as View value
    val presenter : Presenter by inject { parametersOf(a, b) }
}

Defining an "injected parameter"

Presenter 클래스를 빌드하려면 view 가 필요하다는 것을 확인했습니다.

injected params 를 검색하는 데 도움이 되도록 params 함수 인수를 사용합니다.

class Presenter(val view : View)

val myModule = module {
    single { params -> Presenter(view = params.get()) }
}

비구조화된 선언으로 매개변수 객체를 사용하여 주입된 매개변수를 직접 작성할 수도 있습니다.

class Presenter(val view : View)

val myModule = module {
    single { (view : View) -> Presenter(view) }
}

Resolving injected parameters

코인 Graph resolving(모든 definitionresolving의 메인 트리)를 사용하면 주입되어질  매개변수를 찾을 수도 있습니다.

단순히 get() 함수를 사용

class Presenter(val view : View)

val myModule = module {
    single { Presenter(get()) }
}

 

'Koin' 카테고리의 다른 글

Koin (Scopes)  (0) 2022.07.28
Koin Component  (0) 2022.07.28
Koin Modules  (0) 2022.07.28
Koin Definitions  (0) 2022.07.28
Koin이란?  (0) 2022.07.27