Назад к вопросам
Selecty
Junior — Middle
76
Что такое контейнер с системой управления жизненным циклом в рамках Dependency Injection?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Контейнер с системой управления жизненным циклом в Dependency Injection — это объект или структура, которая отвечает за создание, хранение и уничтожение зависимостей (объектов) в приложении.
Он управляет временем жизни объектов: например, создает их при необходимости, переиспользует или уничтожает, когда они больше не нужны. Это позволяет контролировать, когда и как создаются зависимости, улучшая управление памятью и архитектуру приложения.
Пример на Swift с использованием простого DI контейнера:
class DIContainer {
private var singletons = [String: Any]()
func registerSingleton<T>(_ type: T.Type, instance: T) {
let key = String(describing: type)
singletons[key] = instance
}
func resolve<T>(_ type: T.Type) -> T? {
let key = String(describing: type)
return singletons[key] as? T
}
}
// Использование
let container = DIContainer()
container.registerSingleton(NetworkService.self, instance: NetworkService())
let service = container.resolve(NetworkService.self)
Здесь контейнер управляет жизненным циклом синглтон-объекта NetworkService.