ポイント
- 明確な理由がない限り、static クラスは使用しない。
- public static はスコープ拡大の元凶になる。
軽く調べました。
[static 悪]、[static デメリット] で検索
- 気難しいプログラマ: 優れたプログラムとは (2)
スコープ拡大の元凶であるpublic staticは、可読性の向上以外に使用用途はほぼないといっていいと思います(逆説的に聞こえたかもしれませんが、public staticにはラベリング、ユーティリティやプロセス一意であることの明示化という可読性向上の用途があります)。
- javaのstaticについて、どういう時にstaticメソッドを使うのかがわかりません。(… – Yahoo!知恵袋
基本的には、[使いたいからstaticを使う]とはっきり言えるまでは、使わないほうが良いです。
おわりに
メモリの使用量といったコストの視点ではなく、クラス設計での視点で気になりました。
例えば Java や C# を使って、static をつけたクラスでもつけないクラスでもどちらでも設計・コーディングが可能です。
ただ、なんとなく基本的に使用しない方が良さそうと漫然と感じておりました。
- static のメリットは、呼び出すときにクラスをインスタンス化しなくて良い、くらいしか思いつけない。
- 調べものや参考書を見ていると、static クラスを設計の中で見ない。
今回、ふと気になって調べました。ただ、static クラスを悪者と見た前提で調べておりましたことは否定できません。
[staticクラス メリット] で調べて、次のページが参考になると存じます。
読んでみますと、
- 1つしか存在させたくない、new させたくない交通整理役のクラスを使いたい場合に static クラスを使うのがよい
- そのような理由が特にない場合は static クラスにしない
という考え方で良さそうです♪
以上です。