デザインパターン

Factory Method

適応可能性

  • クラスが、生成しなければならないオブジェクトのクラスを事前に知ることができない場合。
  • サブクラス化により、生成するオブジェクトを特定化する場合。
  • クラスが責任をいくつかのサブクラスの中の1つに委譲するときに、どのサブクラスに委譲するのかに関する知識を局所化したい場合。

構造

Factory Method.gif

構成要素

Product クラス ( Document クラス)
  • factory method が生成するオブジェクトのインタフェースを定義する。
ConcreteProduct クラス ( MyDocument クラス)
  • Product クラスのインタフェースを実装する。
Creator クラス ( Application クラス)
  • Product 型のオブジェクトを返す factory method を宣言する。また、ある Concrete Product オブジェクトを返すように factory method の実装をデフォルトで定義することもある。
  • Product のオブジェクトを生成するために factory method を呼び出す。
ConcreteCreator クラス ( MyApplication クラス)
  • ConcreteProduct クラスのインスタンスを返すように、factory method をオーバーライドする。

目的

オブジェクトを生成するときのインタフェースだけを規定して、実際にどのクラスをインスタンス化するかはサブクラスが決めるようにする。Factory Method パターンは、インスタンス化をサブクラスに任せる。

コメント

##comment_kcaptcha



添付ファイル: fileFactory Method.gif 1007件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-22 (月) 11:34:20 (4270d)
SmartDoc