Назад к вопросам
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 ...
}
}
Инициализатор — самый распространенный и рекомендуемый способ, так как гарантирует, что зависимость присутствует при создании объекта. Свойство используется, когда зависимость опциональна или не известна на момент инициализации. Метод применяется, когда зависимость нужна только для конкретного метода.