30分プログラム、その158。Nullオブジェクトを作る。 RubyのNilClassは無関係で、デザインパターンのほうのNullオブジェクト。適当に要約すると、処理Aをするクラスと、処理Bをするクラスと、何もしないクラスを用意して、それぞれ状況に応じて別のクラスに渡すようにすると、処理をする場合と処理をしない場合をわける必要がなるなる、というパターン。 で、このNullオブジェクトを簡単につくるためのクラスを定義してみる。 最初は、いかなるメソッドが呼ばれてもエラーにならないクラスを定義してみた。でも、これだとメソッド名を間違えても文句を言わなくて困るので、指定したメソッドだけ処理するクラスも定義した。 使い方 irb> require 'nullobject' # eaterに何を食べさせても、エラーにならない irb> eater = Eater.new => #<Eater:0x1