Поскольку статья описывает это
Одна из первых вещей, которые нужно выяснить, состоит в том, что единственная задача внедрения зависимостей заключается в построении графа услуг. Чтобы поместить это в Engli sh, это означает, что система внедрения зависимостей создает и подключает службы и объекты, которые управляют данными приложения.
Сначала давайте выясним, что DI
я рекомендую это статья .
Учитывая, что мы уже знаем, что это такое, внедрение служб в этой статье в основном говорит, что внедрение объекта-менеджера, который манипулирует данными вместо введения самих данных, позволяет говорить кодом.
Проверьте следующий пример DI
.
struct DataModel {
// dummy data
}
class Foo {
var dataModel: DataModel
init(dataModel: DataModel){
self.dataModel = dataModel
}
}
Это базовый c пример внедрения зависимостей, где вы вводите данные, можете назвать это внедрением данных.
Так что, в конце концов, все это может быть связано с тем, что это такое.
Так что в этой статье он пытается объяснить различия и варианты использования между ними, теперь для упрощенного внедрения служб.
struct DataModel {
// dummy data
}
class ModelManager { // service class
func getModel(dataModel: DataModel) -> DataModel{ // service
return dataModel
}
}
class Foo {
var dataModelManager: ModelManager
var dataModel: DataModel
init(dataModelManager: ModelManager, dataModel: DataModel){
self.dataModelManager = dataModelManager
self.dataModel = dataModel
var proccessedData = dataModelManager.getModel(dataModel: dataModel) // service injection
}
}
Здесь нет большой разницы, но это то, что мы называем внедрением служб.