PROFESSIONAL GAME CREATOR SCHOOL G学院 用語集

OFFICIAL SITEへ戻る

Factory Method

 Factory Methodとは、オブジェクト指向プログラミングで用いられる23種類のデザインパターンの1つです。このデザインパターンはオブジェクトの生成のためのパターンの一つです。
 このFactory Methodは、一言でまとめると同じ種類のものを複数種類生成するためのパターンです。様々な種類の同じ枠組みのものを生成するという点がポイントです。このパターンは、その名の通り工場から様々な製品を生産していくイメージです。上記文章のみでは説明が分かりにくいですが、まず例をあげましょう。
 例としてRPGゲームの店等があります。店にも色々な種類がありますが、例えば武器屋では様々な武器が用意されています。これを購入することになると、色々な種類の武器を生成してプレイヤーに渡せなければなりません。また、武器屋以外に道具屋もあるので、それも考慮する必要があります。
 この例をオブジェクト指向の観点で見てみましょう。Factoryクラスはここでは店に当たります。また、店の品物はItemクラスとして定義できます。FactoryクラスではItemクラスのインスタンスを返すメンバ関数(メソッド)を持ちます。これは仮想関数であり、それ自身に機能は無いです。このクラス子クラスを作製して機能を上書き(オーバーライド)する前提で設計されます。Factoryクラスは子クラスとして武器屋や道具屋を設計します。Itemも複数存在するので、親クラスのItemクラスから剣や槍等様々な種類の品物が子クラスとして定義されます。Factoryクラスの子クラスは、Itemのインスタンスを返すメソッドを持つため、Itemの子クラスを返すことも可能です。そのため、武器屋(Factoryクラスの子クラス)は、そのメソッドから剣や槍(Itemの子クラス)のインスタンスを生成し、渡すことができます。また、品物が変われば、メソッドを修正することで対応可能です。
 このFactory Methodパターンでは、FactoryクラスとItemクラスをそれぞれ派生していくことで、多様なオブジェクトを生成できます

用語集一覧へ戻る