[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