Что такое factory в Koin

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

Ответ

В 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).