Назад к вопросам
Middle
107
questionbank

Какие способы внедрения зависимостей ты знаешь?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

  • Инициализатор (Initializer Injection)
  • Свойство/Сеттер (Property/Setter Injection)
  • Метод (Method Injection)
// Инициализатор (Initializer Injection)
class MyClass {  
    let dependency: Dependency  

    init(dependency: Dependency) {  
        self.dependency = dependency  
    }  
}  
// Свойство/Сеттер (Property/Setter Injection)  
class MyClass {  
    var dependency: Dependency?  
}  

// Использование сеттера  
let instance = MyClass()  
instance.dependency = concreteDependency  
// Метод (Method Injection)  
class MyClass {  
    func performAction(with dependency: Dependency) {  
        //... использовать dependency ...  
    }  
}  

Инициализатор — самый распространенный и рекомендуемый способ, так как гарантирует, что зависимость присутствует при создании объекта. Свойство используется, когда зависимость опциональна или не известна на момент инициализации. Метод применяется, когда зависимость нужна только для конкретного метода.