Deletions are marked like this. | Additions are marked like this. |
Line 10: | Line 10: |
Guiceを使う新たなアプリケーションはこのAPIを使うべきではない。 | Guiceを使って新しいアプリケーションを書く場合は、このAPIを使うべきではない。 |
Line 12: | Line 12: |
静的状態は空くであるが、staticキーワードを使うことは別に悪くなり。 | 静的状態は悪であるが、staticキーワードを使うことは別に悪くない。 |
静的状態を避けよ
静的状態とテスト容易性は敵どうしである。 テストは素早く副作用無しに行われなければならないが、 staticフィールドに保管される定数以外の値は取り扱いが困難である。 テストによってモックされた静的なシングルトンをきちんとティアダウンすることはトリッキーであるし、他のテストにも影響を及ぼしかねない。
requestStaticInjection()は助けになる。 GuiceはこのAPIを静的に構成されたアプリをDIに用意にマイグレーションできるように用意している。 Guiceを使って新しいアプリケーションを書く場合は、このAPIを使うべきではない。
静的状態は悪であるが、staticキーワードを使うことは別に悪くない。 staticクラスはOKであるし(むしろ推奨される!)、純粋関数(ソートや数学関数など)はstaticでよい。