私はEffective Javaを読んでいて、TDDと依存性注入に関連して、最初の項目「コンストラクターの代わりに静的ファクトリメソッドを使用する」に関していくつかの懸念があります。
この項目には、public/protected/default コンストラクターを持たないようにし、静的ファクトリーを使用して公開する必要があると書かれています。ファクトリに名前を付けることができる、サブタイプを返すことができる、冗長性を減らすことができるなど、静的ファクトリを使用することに関連するすべての利点に同意します。それを使用してクラスをモックすることはできません。静的ファクトリを持つクラスをモックすることはできません。そのため、テスト駆動開発の妨げになります。
2 番目の点として、彼は、今日のエンタープライズ開発ではほとんどのアプリケーションが何らかの依存性注入コンテナーを使用していることを見逃していたと思います。ですから、DI を使用して依存関係を注入できるのに、なぜそれを使用する必要があるのでしょうか。
DI と TDD を含む今日の Java エンタープライズ開発にどのように適用されるか説明してください。