Если вы используете макеты для проверки взаимодействия объектов, вам придется передавать соавторов через конструкторы или специальные методы. В достаточно сложном приложении у вас будет много маленьких объектов, взаимодействующих друг с другом. Как вы управляете построением всего графа объектов на самом верхнем уровне приложения? Одним словом, как вы справляетесь со следующим:
// arbitrarily complex
A a = new A(new B(new C(new D(new ...)), new E(new ...)), new F(new G(new ...)));
a.doSomething();
Кажется, что контейнеры для инъекций зависимости являются лучшим решением в таких случаях. Есть ли другие хорошие стратегии для упрощения управления зависимостями?