Sobes.tech
Назад к вопросам
Junior — Middle
76

Что такое контейнер с системой управления жизненным циклом в рамках Dependency Injection?

Компании, где спрашивали
SelectySelecty

Ответ от нейросети

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.