Я считаю, что эти вопросы были заданы в том или ином виде, но я пока не получаю его.Как сделать ручной DI с графами глубоких объектов и многими зависимостями должным образом
Мы делаем проект GWT, и мой руководитель проекта не разрешил использовать GIN/Guice в качестве рамки DI (новые программисты не поймут это, он утверждал), поэтому я стараюсь сделать DI вручную.
Теперь у меня проблема с графами глубоких объектов. Иерархия объектов из пользовательского интерфейса выглядит следующим образом:
AppPresenter-> DashboardPresenter-> GadgetPresenter-> GadgetConfigPresenter
путь GadgetConfigPresenter вниз по дереву иерархии объектов имеет несколько зависимостей, таких как CustomerRepository, ProjectRepository, MandatorRepository и т.д.
Таким образом, GadgetPresenter, который создает GadgetConfigPresenter, также имеет эти зависимости и т. Д., Вплоть до точки входа приложения, которое создает AppPresenter.
- Возможно ли, что это руководство должно работать?
- не означает ли это, что я создаю все зависимости во время загрузки, даже мне они не нужны?
- будет ли каркас DI, как GIN/Guice, помочь мне здесь?
Похоже, проблема заключается в том, что ваш проект ведет больше всего на свете. Вы не можете использовать технологию, потому что новый программист ее не поймет? Как насчет документирования и обучения их тому, что нужно понимать? –
@matt: он совершенно неохотно относится к новым технологиям, и он считает, что новому программисту нужно многому научиться в этом проекте, например, в java-php-мосте, а затем DI - всего лишь волшебство за кулисами, которые они не получат. Я не думаю, что это действительно так. Если рамка DI является единственным решением, я попытаюсь снова убедить его, но мне было бы действительно интересно, если и как это делается вручную. – Fabian
Я бы рекомендовал подходить к этому обсуждению как «посмотреть на все эти ручные работы по прокладке, которые нам нужно сделать в коде, и сравнить его с тем, насколько проще использовать контейнер IoC», –