Google Guiceのような依存性注入フレームワークは、その使用(ソース)に次の動機を与えます。
オブジェクトを構築するには、まずその依存関係を構築します。しかし、各依存関係を構築するには、その依存関係などが必要です。したがって、オブジェクトを作成するときは、オブジェクトグラフを作成する必要があります。
手作業でオブジェクトグラフを作成するのは手間がかかり(...)、テストが困難になります。
しかし、私はこの議論を買いません。依存性注入フレームワークがなくても、インスタンス化が簡単で、テストが便利なクラスを作成できます。たとえば、Guiceの動機付けページの例を次のように書き換えることができます。
class BillingService
{
    private final CreditCardProcessor processor;
    private final TransactionLog transactionLog;
    // constructor for tests, taking all collaborators as parameters
    BillingService(CreditCardProcessor processor, TransactionLog transactionLog)
    {
        this.processor = processor;
        this.transactionLog = transactionLog;
    }
    // constructor for production, calling the (productive) constructors of the collaborators
    public BillingService()
    {
        this(new PaypalCreditCardProcessor(), new DatabaseTransactionLog());
    }
    public Receipt chargeOrder(PizzaOrder order, CreditCard creditCard)
    {
        ...
    }
}したがって、依存性注入フレームワークには他の引数があるかもしれません(この質問の範囲外です!)が、テスト可能なオブジェクトグラフの簡単な作成はそれらの1つではありませんか?