Я читал «Эффективную Java», и у меня есть некоторые опасения, связанные с первым пунктом «Использование статического метода фабрики вместо конструктора» в отношении TDD и внедрения зависимостей.
Элемент говорит, что вам следует избегать использования конструктора public / protected / default и выставлять его с помощью статической фабрики.Я согласен со всеми преимуществами, связанными с использованием статических фабрик, например, у фабрик может быть имя, вы можете вернуть подтип, вы можете уменьшить многословность и т. Д. Но, я думаю, в недостатках Джошуа пропустил TDD, потому что наличие статических фабрик в вашем коде приведет к тесной связи иВы не можете издеваться над классом, используя его.Мы не сможем издеваться над классом, который будет иметь статические фабрики.Таким образом, это затрудняет разработку через тестирование.
Второй момент, я думаю, он упустил тот факт, что в современных корпоративных разработках большинство приложений используют тот или иной контейнер внедрения зависимостей.Итак, когда мы можем внедрить зависимости с помощью DI, зачем мне его использовать.
Пожалуйста, объясните, как это применимо к современной разработке Java-приложений для предприятий, которая включает DI и TDD.