Когда говорят о пользе DI, часто упоминают тот факт, что с помощью DI ты можешь быстро заменить одну реализацию на другую (например, переключить управление клавамышью на гейпад). Это действительно так, и это, конечно, полезная вещь, но на практике она требуется довольно редко.
Для себя я каждый день извлекаю пользу от Zenject в том, что я пишу в любом компоненте
[Inject] private Foo foo; и сразу же получаю себе зависимость Foo;В чем плюсы:
+ Мне не нужно париться с назначением зависимостей в инспекторе.
+ Мне не нужно делать зависимости синглтонами в классическом их понимании, со статической ссылкой на инстанс.
+ И да, если однажды мне понадобится 2 разные реализации
Foo, я сделаю Foo интерфейсом, сделаю 2 реализации, буду их подсовывать через Zenject, а пользователи Foo даже и не заметят разницы.#zenject