著作一覧 |
public class Util { private Util() { } // これ public static int foo() { ... } ... }
で、ふと気づいたんだが、これで良いのじゃなかろうか?
public abstract class Util { // 冗長な無引数コンストラクタ宣言はしない。 // それにユーティリティなんだから // 引数を取るコンストラクタを定義することは無いはず // public Util() { } public static int foo() { ... } ... }
っていうか、このほうが絶対に良いと思う。無意味なインスタンス生成は最初のと同じく防止できる。かつ、継承が可能(staticメソッドの固まりだから継承は名前によるバージョニングや、パッケージの付け替えのためのものだ)。
ジェズイットを見習え |
なるほど!! それいいかも。本当は、<br>public static class Util...<br>のように書ければ良いのかもしれませんが。
なるほど。<br>protectedコンストラクタという手もありそうです。<br><br>ユーティリティのバージョニングって頭が痛いですね。最近はユーティリティもインジェクションで解決する方が良いのかもしれないと感じ始めています。