いくらJavaだ、オブジェクト指向だと言っても
ユーティリティクラスを使うことはありますよね。
ここで、ユーティリティクラスというのは
フィールドやメソッドに全てstaticがついていて
共通ロジックを提供するクラスのことをいっています。
こういうクラスを全く作らない場合ってあるんですかね。
今回、とあるプロジェクトのユーティリティクラスを
眺めていたら、ふと目に止まるところがありました。
コンストラクタがpublicで宣言されているじゃないか。
コンストラクタにpublicがついているということは、
つまり、クラスがインスタンス化できるということ。
でも、全部staticなメソッドとフィールドだから、
インスタンス化しても意味ない。
多分、ルーチンワーク的に、特に何も考えずに
publicのデフォルトコンストラクタを作ったんだろう。
まあ、実害はほとんどないから、
そんなに問題はないと思いますけどね。
ユーティリティクラスのコンストラクタは
privateで宣言したほうがいいね。
さて、このプロジェクトのユーティリティクラス群、
コンストラクタがpublicで宣言されているものもあれば、
privateで宣言されているものもあった。
また、コンストラクタの記述自体が省略されているものもあった。
統一感なさすぎです。。。
この統一感のなさはコンストラクタだけじゃなかろうて。
保守とか大変そうな気配漂う。