[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10053] Re: 次回の読書会
福嶋です。
土曜日はおつかれさまでした。
On Sun, 31 Mar 2002 12:22:50 +0900, according to the article
"[jfriends-ml 10051] Re: 次回の読書会"
"TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxxxxxx> wrote:
> > 日本語に訳されたページがあるのは嬉しいですよね。
> > 「NULL Pattern」ってどんなんだろうと興味があります。
>
> 訂正です。
> http://exciton.cs.oberlin.edu/javaresources/DesignPatterns/default.htm
> のページの
> http://exciton.cs.oberlin.edu/javaresources/DesignPatterns/NullPattern.htm
> の内容でした。
別名、Null Object Pattern というやつですね。
http://www.javareport.com/archive/9912/html/from_pages/ftp_col.shtml
StateやStrategyの1種で、「何もしないこと」を表す状態や戦略です。
public class Hoge {
private Fuga fuga = null;
:
public foo() {
if (hoge != null) {
//nullじゃない時の処理
hoge.doSomething();
}
}
}
みたいにするのではなく、
public class Hoge {
private Fuga fuga = new NullFuga();
:
public foo() {
fuga.doSomething();
}
}
とするものです。
この場合、NullFuga#doSomething()は何もしないように実装します。
(あるいはExceptionをthrowするとか、場合によりけり)
nullかどうかを判定するのではなく、nullであるということも
オブジェクトとして表そう、そうすれば、if文でnullチェック、
ということも不要になる(ことが多い)、というものです。
----------------------------------------
(株)PFU ソフトプロダクト事業部第二開発部
福嶋 航 w.fukushima@xxxxxxxxxxxxxxx