トップ «前の日記(2005-08-07) 最新 次の日記(2005-08-09)» 編集

日々の破片

著作一覧

2005-08-08

_ 88

夏の盛りだ88だ。

一昨日(ロボッツ見に渋谷へ行ったわけだが)どうしてこうも桜の国が本屋に平積みになってるのかと思ったら、子供が「やっぱり今日だからかなぁ」とか言ってるもんで納得した。

_ 継承可能なユーティリティクラス

何が気にくわないと言って、ユーティリティクラスを継承して拡張することができないのは気にくわない。
public class Util {
    private Util() { } // これ
    public static int foo() { ... }
    ...
}

で、ふと気づいたんだが、これで良いのじゃなかろうか?

public abstract class Util {
    // 冗長な無引数コンストラクタ宣言はしない。
    // それにユーティリティなんだから
    // 引数を取るコンストラクタを定義することは無いはず
    // public Util() { } 
    public static int foo() { ... }
    ...
}

っていうか、このほうが絶対に良いと思う。無意味なインスタンス生成は最初のと同じく防止できる。かつ、継承が可能(staticメソッドの固まりだから継承は名前によるバージョニングや、パッケージの付け替えのためのものだ)。

本日のツッコミ(全2件) [ツッコミを入れる]
_ GLAD!! (2005-08-08 12:09)

なるほど!! それいいかも。本当は、<br>public static class Util...<br>のように書ければ良いのかもしれませんが。

_ るいも (2005-08-08 13:02)

なるほど。<br>protectedコンストラクタという手もありそうです。<br><br>ユーティリティのバージョニングって頭が痛いですね。最近はユーティリティもインジェクションで解決する方が良いのかもしれないと感じ始めています。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|

ジェズイットを見習え