Ответ
В 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().