Комментарии 9
Как это работает с зависимостями зависимостей?
Т.е. если ImageProvider понадобится StorageProvider?
Т.е. если ImageProvider понадобится StorageProvider?
0
Написал небольшой gist как это можно решить https://gist.github.com/JiLiZART/d072b3cc9a8d181234f4f374bb5eda09, по сути нужно создавать отдельную структуру для ImageProvider
.
По правильному, используя например Swinject, это выглядело бы так:
class AmazonImageProvider {
init(container: Container) {
self.storage = container.resolve(StorageProvider.self)!
}
}
let container = Container()
container.register(StorageProvider.self) { _ in FileStorageProvider() }
container.register(ImageProvider.self) { c in
AmazonImageProvider(container: c)
}
0
НЛО прилетело и опубликовало эту надпись здесь
В таком случае мы не сможем разделить реализацию компонентов ImageProvider и ArticleProvider
0
Желательно добавить источник:
http://merowing.info/2017/04/using-protocol-compositon-for-dependency-injection/
http://merowing.info/2017/04/using-protocol-compositon-for-dependency-injection/
-1
Интересное решение. А как будет выглядеть вызов инициализации FooContainer, что вы ему передадите в качестве параметра?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Композиция протоколов для инъекции зависимостей