このスレッドを読んで思いついた小さな質問があります: なぜ静的変数は悪と見なされるのですか?
私のアプリケーションでは、非常に大量の設定変数があります。たとえば、フォント、色、キャッシュされた画像など...それらのほとんどは変更されないため、静的であると考えました。それにもかかわらず、私のアプリケーションはアプレットであり、クライアントがアプレットを一度実行しているため、特定の構成が変更された可能性があるため、これらの静的情報の一部が変更される可能性があります。したがって、この種のデータはめったに変更されることはありませんが、最終的なものとは見なされません。
さらに、そのように処理する情報の量は膨大であるため、次のように独自の列挙型にそれらをマッピングしました。
public enum Fonts {
COLOR_CHOOSER, MAP_META_DATA;
private Font localFont;
public Font getValue() {
return localFont;
}
private void setValue(Font newFont) {
localFont = newFont;
}
}
protected static void initFonts() {
Fonts.COLOR_CHOOSER.setValue(new Font("Arial", Font.PLAIN, 15));
Fonts.MAP_META_DATA.setValue(font_race.deriveFont(Font.BOLD, 11));
}
そのような列挙型を使用することで、探している値を非常に簡単に特定でき、それらすべてを 1 か所で管理できます。
これは静的なので、代わりにオブジェクト内に配置することもできますが、とにかく使用されます。それにもかかわらず、私は現在の動作の方が読みやすいと考えました。
それに加えて、initFonts() メソッドは、将来、json や xml などの外部ソースから現在ハードコードされている値を取得するマッピング メソッドに置き換えられます。したがって、オブジェクト指向で作業する場合、これは、受信データを対応するオブジェクトに転送することを意味します。これは、読みにくいと考えています。
私の質問を考え出すには:あなたの誰かが最終パラメータの途中でどのようにマップ/キャッシュしますか(キー値として列挙型を持つハッシュマップを持つことも検討しました)。たとえば、画像、フォント、色、ピクセル マージンなどの場合です。これらの列挙型を使用する方法は適切ですか、それとも静的であるため悪であると見なすことができますか? はいの場合 - 読みやすく、維持しやすい適切な方法は何ですか?!
私は可能な方法であるという私の解決策を考えましたが、上記のスレッドを読んだ後、デザイン全体を再考するつもりでした.
アドバイスありがとうございます。敬具。