abstract factory patternとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > abstract factory patternの意味・解説 

Abstract Factory パターン

(abstract factory pattern から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/18 09:01 UTC 版)

Abstract Factory パターン(アブストラクト・ファクトリ・パターン)[1]とは、GoF(Gang of Four; 4人のギャングたち)によって定義されたデザインパターンの1つである。 関連するインスタンス群を生成するための API を集約することによって、利用側がインスタンス群をまとめて変えられるようにし、さらに組み合わせ方を間違えないようにする[1]。日本語では「抽象的な工場」と翻訳される事が多い。

Kit パターンとも呼ばれる[1]

クラス図

Abstract Factory パターンのクラス図を以下に挙げる。

利用例

応用例

DOM は Abstract Factory パターンを応用した API の一つである。参考までに、クラス図との対応関係を示す。

AbstractFactory
org.w3c.dom.Document
AbstractFactory#createProduct()
org.w3c.dom.Document#createElement(String), org.w3c.dom.Document#createTextNode(String) など
Product
org.w3c.dom.Element, org.w3c.dom.Text など

関連するパターン

生成するProductを変更する手法としては、AbstractFactoryクラスがfactory method(Factory Method パターンを参照)を持ち、それを個々のConcreteFactoryが上書きする手法が一般的である。しかし、Prototype パターンを使い、prototypeとなるオブジェクトの変更により生成するProductを変える手法もある[1]

ConcreteFactoryは、singletonオブジェクト(Singleton パターンを参照)であることもある。

Factory Method パターンとの違い

『オブジェクト指向における再利用のためのデザインパターン』においてはFactory Method パターンは「クラスパターン」に分類されている。一方Abstract Factory パターンは「オブジェクトパターン」に分類されている。

Factory Method パターンは親クラスであるCreatorクラスが子クラスであるConcreteCreatorクラスにオブジェクトの生成を委ねるという、CreatorクラスとConcreteCreatorクラスとの関連である。一方でAbstract Factory パターンは、ClientのインスタンスがConcreteFactoryのインスタンスにオブジェクトの生成を委ねるという、オブジェクト同士の関連である。

関連項目

参考文献

  1. ^ a b c d エリック・ガンマラルフ・ジョンソンリチャード・ヘルムジョン・ブリシディース(著)、グラディ・ブーチ(まえがき)、本位田真一、吉田和樹(監訳)、『オブジェクト指向における再利用のためのデザインパターン』、ソフトバンクパブリッシング、1995。ISBN 978-4-7973-1112-9.



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「abstract factory pattern」の関連用語

abstract factory patternのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



abstract factory patternのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのAbstract Factory パターン (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS