デザインパターン-AbstractFactory



AbstractFactory(抽象的な工場)とは

AbstractFactoryパターンは、インスタンスの生成を専門に行うクラスを用意することで、複数のモジュール群の再利用を効率化することを目的とするパターンです。

これにより、具体的なクラスを明確にすることなく、関連し合うオブジェクトの集まりを生成することが可能になります。

また、関連するインスタンス群を生成するためのAPIを集約することによって、整合性が必要となるオブジェクト群を誤りなしに生成します。


簡単にいえば、関連オブジェクトを生成するFactoryが多数になった場合に、効率的に管理するために、Factoryを生成するFactoryを作成することがAbstractFactoryパターンです。

Factoryについては、デザインパターン-FactoryMethodを参照下さい。


Abstract Factoryパターンの目的は、GoF本では次のように定義されています。

互いに関連したり依存し合うオブジェクト群を、その具象クラスを明確にせずに生成するためのインターフェースを提供する。

AbstractFactoryパターンのメリット


構成要素


rubyでのAbstractFactory実装方法

クラス名の文字列からインスタンスを生成します。

evalで文字列を評価してからメソッドを起動します。

class Factory
  def Factory.get_factory(classname)
    begin
      eval(classname).new
    rescue NameError
      puts "Unknown factory class: #{classname}."
    end
  end
end

関連ページ



スポンサード リンク