Pull to refresh

Comments 9

Как это работает с зависимостями зависимостей?
Т.е. если ImageProvider понадобится StorageProvider?

Написал небольшой 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)
}
UFO just landed and posted this here

Ну, это он и есть, частный случай реализации IoC

UFO just landed and posted this here
В таком случае мы не сможем разделить реализацию компонентов ImageProvider и ArticleProvider
Желательно добавить источник:
http://merowing.info/2017/04/using-protocol-compositon-for-dependency-injection/

т.е вот эта плашка вам ни о чем не говорит? image

Интересное решение. А как будет выглядеть вызов инициализации FooContainer, что вы ему передадите в качестве параметра?

Sign up to leave a comment.

Articles