Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Написал небольшой 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)
}Интересное решение. А как будет выглядеть вызов инициализации FooContainer, что вы ему передадите в качестве параметра?
Композиция протоколов для инъекции зависимостей