developer's diary

最近はc#のエントリが多いです

Singleton パターンで、initializeを利用したい。

考え方が間違っているかもしれないが。

class DisplayOutPutOn
  def out_put
    puts "DisplayOutPutOn"
  end
end

class DisplayOutPutOff
  def out_put
    puts "DisplayOutPutOff"
  end
end

require 'singleton'
class Display
  include Singleton
  def initialize(displayOnOff = true)
    #displayOnOffがtrueかfalseで、振る舞いを変えたい。
    if displayOnOff
      @Display = DisplayOutPutOn.new #trueなら出力する。
    else
      @Display = DisplayOutPutOff.new #falseなら出力しない。
    end
  end

  def out_put #初期化時に振る舞いが決まる。
    @Display.out_put
  end
end

display = Display.instance(false) #出力しないを設定
display = Display.instance(true)  #出力するを設定 (エラーになってしまう。引数を設定しなければ異常は起きない。)
display.out_put #実際は出力しないにしたい。

インスタンスを作成する時に、initializeに引数を渡したいのだけれども、どうしたらいいものか。。。