Ответ
В Koin Factory — это определение, которое создает новый экземпляр зависимости при каждом запросе. В отличие от Singleton, где инстанс создается один раз и переиспользуется, Factory генерирует новый объект для каждого вызова get() или внедрения.
Пример:
// Модуль Koin
val appModule = module {
factory { ServiceImpl() } // Каждый раз новый ServiceImpl
single { Repository(get()) } // Singleton
}
// Использование
val service1: ServiceImpl by inject()
val service2: ServiceImpl by inject()
// service1 != service2
Когда использовать:
- Для легковесных или stateless-зависимостей.
- Если объект должен быть уникальным для каждого запроса (например, ViewModel в Android).