デザインパターン-FactoryMethod



FactoryMethodパターンとは

FactoryMethodパターンは、インスタンスの生成をサブクラスに任せることで、より柔軟なインスタンス生成することを目的とするパターンです。

インスタンスを生成するサブクラスを「Factory=工場」に見立てています。


Template Methodパターンでは処理の骨組みをスーパークラスで定めたのに対して、FactoryMethodパターンではインスタンス生成の骨組みをスーパークラスで定めます。


FactoryMethodパターンのメリット


構成要素


rubyによるFactoryMethodパターンの実装

#!/usr/bin/env ruby

# Productの抽象クラス
class AbstractProduct
  def use
  end
end

# Productの個別実装
class ConcreteProduct < AbstractProduct
  def initialize(str)
    @owner = str
  end

  def use
    "#{@owner}を利用します。"
  end
end

# Factoryの抽象クラス
class AbstractFactory
  def create(*arg)
    create_product(*arg)
  end
end

# Factoryの個別実装を受け持つ継承クラス
class ConcreteFactory < AbstractFactory
  def create_product(str)
    ConcreteProduct.new(str)
  end
end

factory = ConcreteFactory.new
product = factory.create("menu")
puts(product.use)


関連ページ



スポンサード リンク