2009-06-03 6 views
6

たとえば、(インターフェイスではありませんが).NETのStreamクラスはStream.Nullによって提供される実装を持ち、単純にデータを破棄します。 PowerShellにはOut-Nullがあります。インターフェイスを実装する無駄なオブジェクトのパターンが認識されていますか?

私が開発したアプリケーションでは、オブジェクトをまったく渡さずに無駄な実装をするのが望ましい場合に、デフォルトの実装NullFooなどでインターフェイスIFooを実装すると便利なことがよくあります。

私の質問は、ドキュメント化やアーキテクチャの説明でこの習慣をどのように参照する必要がありますか?これに対して認識された名前やGoF/Fowlerのデザインパターンはありますか? http://en.wikipedia.org/wiki/Null_Object_pattern

答えて

11

このパターンは、しばしば "NullObject" として参照されます。それはNull Objectのパターンです。

5

うん:

3

どうやらそれは名前、「NullObject」を持っていますが、質問は異なる面持つことができます私のプロジェクト全体の実装はスタブ方法やデータのシンカーのいずれかで構成されて開始から

右を。

私は(あなたが1日目からプロジェクトをビルドすることができますが、すでにあなたに意味のあるリターンを与える)はまだ実装していない外部インターフェイスを指す用語「スタブ」を使用します。

"Sinker"は、データを直接送ることができるインターフェースを指していますが、本当にそこからはどこにも行きませんし、送信者の間違いではありません(コード "do notそのスコープ内の条件を送信する)。

完全ビルドが必要です。次に、コーディングを開始します。時間がたつにつれて、ほぼすべてのスタブが機能的になり(また、一部のデータを処理またはソースする)、ほぼすべてのシンカーが機能するようになります。あなたがプログラミングしている場合は、他のポスターは

  • を指摘しているよう

  • 1
    • など、私たちはいくつかのシンカーが存在しなくなることがわかり、コードレビューでは、他の人がグループ化することができ、などのオブジェクトは、Null Objectと呼ばれているように見えます.NET環境で、あなたは(String.Emptyのように)「空」であり、Microsoftの規則に従うことをお勧めします。以下を参照してください。.Net BCL Examples Search
    +0

    Stream.Empty対Stream.Null – dss539

    0

    さらに一般的にNullオブジェクトパターンはSpecial Case patternと呼ばれます。

    関連する問題