Locked History Actions

guice/Manual/BestPractices/AvoidStaticState

静的状態を避けよ

静的状態とテスト容易性は敵どうしである。 テストは素早く副作用無しに行われなければならないが、 staticフィールドに保管される定数以外の値は取り扱いが困難である。 テストによってモックされた静的なシングルトンをきちんとティアダウンすることはトリッキーであるし、他のテストにも影響を及ぼしかねない。

requestStaticInjection()は助けになる。 GuiceはこのAPIを静的に構成されたアプリをDIに用意にマイグレーションできるように用意している。 Guiceを使って新しいアプリケーションを書く場合は、このAPIを使うべきではない。

静的状態は悪であるが、staticキーワードを使うことは別に悪くない。 staticクラスはOKであるし(むしろ推奨される!)、純粋関数(ソートや数学関数など)はstaticでよい。