rubyでデザインパターン simple_factoryパターン

module Door
	
	def getWidth
	end

  def getHeight
  end
end

class WoodenDoor
  include Door
  attr_reader :width, :height

  def initialize(width, height)
    @width = width
    @height = height
  end

  def name
    "木製のドアです。"
  end

end

class DoorFactory

  def self.makeDoor(width, height)
    WoodenDoor.new(width, height)
  end
end

door = DoorFactory::makeDoor(100, 200)
puts door.width
puts door.height
puts door.name

simple factoryパターンは、クライアントが必要とするインスタンスを生成するもの。このとき、インスタンス生成ロジックはクライアントから見えないようにうまく隠しておきます。
WoodernDoorを生成する前に何かロジックを加える必要がある場合はこのようにファクトリーで隠蔽するのが良い。コードを書く人はDoorFactoryに引数渡すと後はなんか知らんけどちゃんとしたドア返ってくるわぐらいの感覚でいられる。