「Abstract Factory パターン」の版間の差分
削除された内容 追加された内容
Cocoa ruto (会話 | 投稿記録) 参考文献の追加。Clientクラスに関する記述を追加。関連するパターンをGoF本に基く記述に変更。 |
m ロボットによる: 細部の編集 |
||
1行目:
'''Abstract Factory パターン'''(アブストラクト・ファクトリ・パターン)<ref name="GoF">[[エーリヒ・ガンマ|エリック・ガンマ]]、[[ラルフ・ジョンソン]]、[[リチャード・ヘルム]]、[[ジョン・ブリシディース]](著)、[[グラディ・ブーチ]](まえがき)、本位田真一、吉田和樹(監訳)、『オブジェクト指向における再利用のためのデザインパターン』、[[ソフトバンクパブリッシング]]、1995。ISBN 978-
関連するインスタンス群を生成するための [[Application Programming Interface|API]] を集約することによって、複数のモジュール群の再利用を効率化することを目的とする。日本語では「抽象的な工場」と翻訳される事が多い。
Kit パターンとも呼ばれる<ref name="GoF"/>。
== クラス図 ==
Abstract Factory パターンの[[クラス図]]を以下に挙げる。
[[
== 利用例 ==
{{節スタブ}}
== 応用例 ==
[[Document Object Model|DOM]] は Abstract Factory パターンを応用した API の一つである。参考までに、クラス図との対応関係を示す。
18行目:
;Product:[http://download.java.net/jdk/jdk-api-localizations/jdk-api-ja/builds/latest/html/ja/api/org/w3c/dom/Element.html org.w3c.dom.Element], [http://download.java.net/jdk/jdk-api-localizations/jdk-api-ja/builds/latest/html/ja/api/org/w3c/dom/Text.html org.w3c.dom.Text] など
== 関連するパターン ==
AbstractFactoryクラスはfactory method ([[Factory Method パターン]])を持ち、それを個々のサブクラスが上書きすることで生成するProductを変えることが多い。しかし、[[Prototype パターン]]を使い、prototypeとなるオブジェクトを変えることで生成するProductを変えることもある<ref name="GoF"/>。
ConcreteFactoryは、singletonオブジェクト ([[Singleton パターン]])であることもある。
== Factory Method パターンとの違い ==
『オブジェクト指向における再利用のためのデザインパターン』においてはFactory Method パターンは「クラスパターン」に分類されている。一方Abstract Factory パターンは「オブジェクトパターン」に分類されている。
Factory Method パターンは親クラスであるCreatorクラスが子クラスであるConcreteCreatorクラスにオブジェクトの生成を委ねるという、CreatorクラスとConcreteCreatorクラスとの関連である。一方でAbstract Factory パターンは、ClientのインスタンスがConcreteFactoryのインスタンスにオブジェクトの生成を委ねるという、オブジェクト同士の関連である。
== 関連項目 ==
*[[Factory Method パターン]]
*[[Prototype パターン]]
|