2011-12-17 9 views
4

Nullオブジェクトパターンは、テスト駆動開発のための優れたツールです。システムの動作をより複雑にする必要がある場合は、nullオブジェクトを導入して、緑色に素早く戻るようにします。また、多くの場合、ヌルオブジェクトは、古い単体テストの目的のために保持するのに便利です。詳しい情報やnullオブジェクトパターンの他の用途はここにある:nullまたは欠落しているオブジェクトの名前の選択

http://en.wikipedia.org/wiki/Null_Object_pattern

今、私は、システム内のこれらのいくつかを持っていることを、私はこれらの名前を付けるための最良の方法について疑問に始めています。あなたは通常、名前に最初の単語としてNullを入れますか、または各ヌルオブジェクトに独自の名前を付けますか?

私は、議論の目的で例を設定してください。私は黒いタートルネックを身につけていたと言いましょうが、今は私のワードローブを少し変えたいとしましょう。新しいタイプのWardrobeChooserと呼ぶことにします。古い振る舞いをカプセル化するために、私は古いオブジェクトNullWardrobeChooserまたはBlackTurtleneckWardrobeChooser、あるいはMissingWardrobeChooser(yikes!)を呼ぶことができます。どのような名前をお勧めしますか?

私はウェブ上を見ましたが、私はこれについての参照を見つけることはできません。

+4

あなたが選択した命名規則は、あなた(とあなたのチーム)までです。あなたが一貫している限り、問題はないはずです。 –

+5

+1 to Oli;それは任意です。つまり、「ヌル」はかなり特殊な意味を持っています。オブジェクトが「保存されていない」や「ログインしていない」などのようなものを表しているときは、 'Default'または' Empty'の接頭辞を付けます。これは矛盾していますが、*意味論的な一貫性を持っています。 –

+2

また、「BlackTurtleneckWardrobeChooser」は、例文ではヌルオブジェクトが実際に何らかのアクションを実行するため(つまり、黒いタートルネックを選択することによる副作用があるため)意味的に意味があります。 – cmbuckley

答えて

2

私は個人的には、ヌルオブジェクトの命名方法を使用しないようにし、それらの公開動作に基づいて名前を付けます。便利な命名を考え出すことは時間がかかる場合

は、私はそれだけでnullオブジェクトパターンを使用しないと何もされていることを伝えます原因接頭辞のようなEmptyまたはDefaultNullよりも優れていると思います。

ヌルオブジェクトの名前のいくつかの例は以下のとおりです。NoDiscountEmptyIteratorDefaultPaymentStrategyなど