Locked History Actions

Diff for "guice/Manual/BestPractices/AvoidStaticState"

Differences between revisions 1 and 2
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でよい。