いくらJavaだ、オブジェクト指向だと言っても

ユーティリティクラスを使うことはありますよね。


ここで、ユーティリティクラスというのは

フィールドやメソッドに全てstaticがついていて

共通ロジックを提供するクラスのことをいっています。


こういうクラスを全く作らない場合ってあるんですかね。



今回、とあるプロジェクトのユーティリティクラスを

眺めていたら、ふと目に止まるところがありました。


コンストラクタがpublicで宣言されているじゃないか。



コンストラクタにpublicがついているということは、

つまり、クラスがインスタンス化できるということ。


でも、全部staticなメソッドとフィールドだから、

インスタンス化しても意味ない。



多分、ルーチンワーク的に、特に何も考えずに

publicのデフォルトコンストラクタを作ったんだろう。


まあ、実害はほとんどないから、

そんなに問題はないと思いますけどね。



ユーティリティクラスのコンストラクタは

privateで宣言したほうがいいね。



さて、このプロジェクトのユーティリティクラス群、

コンストラクタがpublicで宣言されているものもあれば、

privateで宣言されているものもあった。

また、コンストラクタの記述自体が省略されているものもあった。


統一感なさすぎです。。。

この統一感のなさはコンストラクタだけじゃなかろうて。


保守とか大変そうな気配漂う。