Как в Koin использовать новый объект или переиспользовать старый

«Как в Koin использовать новый объект или переиспользовать старый» — вопрос из категории DI, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Koin можно управлять жизненным циклом объектов через скоупы и параметры single (синглтон) и factory (новый объект при каждом запросе).

Пример:

// Синглтон (переиспользуется)  
val appModule = module {  
    single { MyRepository() }  
}  

// Фабрика (новый объект каждый раз)  
val featureModule = module {  
    factory { MyPresenter(get()) }  
}  

Как получить инстанс:

// Для single  
val repo: MyRepository = get()  

// Для factory  
val presenter = get<MyPresenter>()  

Для кастомных скоупов используйте scoped + getScope().