読み方 : ファクトリメソッドパターン

Factory Methodパターン

概要

Factory Methodパターンとは、オブジェクトの生成処理を専用のメソッドに委ね、利用側が具体的なクラスを意識せずに必要なオブジェクトを取得できるようにする設計手法。GoFデザインパターンの一つで、生成処理と利用処理を分離することにより、仕様変更時の修正範囲を抑えやすくなる。
Factory Methodパターンのイメージ画像

通常、オブジェクトを生成する際にはnew演算子などで具体的なクラスを指定するため、利用側のコードが生成対象のクラスに依存してしまう。Factory Methodパターンでは、生成用のメソッドを一つ用意し、そのメソッドが適切なクラスインスタンスを返す仕組みとする。

このパターンでは、生成用のメソッドを宣言する抽象クラスインターフェースと、それを継承・実装した具体的なクラスを組み合わせて用いる。抽象側では生成用のメソッドの型だけを定めておき、実際にどのクラスインスタンスを生成するかは、継承した子クラス側で決定する。

例えば、文書編集ソフトPDFHTMLテキスト形式の文書を出力する場合、それぞれの出力処理を異なるクラスで実装していても、生成処理をFactory Methodにまとめておけば、利用側は出力形式ごとのクラス名を記述せずに済む。新しい出力形式を追加したい場合も、新しい生成メソッドや子クラスを追加するだけで対応できることが多い。

具体的なクラス名がソースコードの随所に記述されていると、あるクラスを別のクラスに差し替える際の影響範囲が広くなり、修正漏れの原因になりやすい。生成処理を一つのメソッドに集約して隠しておくことで、システムの変更や拡張が容易になり、各部品の独立性を保ちやすくなる。

Factory Methodパターンは、GoFGang of Four)のデザインパターンのうち生成に関するパターンに分類される。同じ分類には、関連する複数のオブジェクトをまとめて生成する「Abstract Factoryパターン」や、複雑なオブジェクトを段階的に組み立てる「Builderパターン」などがある。Factory Methodパターンはその中でも、単一のオブジェクトの生成方法を柔軟に切り替えたい場合に用いられる。

(2026.7.5更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。