
Factory Method
パターンの定義
Factory Methodパターンはオブジェクトを作成するためのインタフェー
スを定義するが、どのクラスをインスタンス化するかについてはサブク
ラスに決定させる。
Factory Method
により、クラスはサブクラスにイン
スタンス化を委ねることができる。
ここでは、
Factory Method
パターンの正式な定義を紹介します。
他のファクトリと同様、
Factory Method
パターンは具象型のインスタンス化をカプセル化
する方法を備えています。以下のクラス図から、抽象
Creator
(作成者)クラスがオブジェク
トを作成するメソッド(「ファクトリメソッド」とも呼ばれます)を持つインタフェースを用
意していることがわかります。抽象
Creator
で実装する他のすべてのメソッドは、ファクトリ
メソッドで作成する製品(
Product
)に対して処理を行うように記述されます。実際にはサブ
クラスだけがファクトリメソッドを実装し、製品を作成します。
正式な定義にあるように、「
Factory Method
パターンはインスタンス化するクラスをサブク
ラスに決定させる」と開発者が言っているのをよく耳にするでしょう。
Creator
クラスは作成
する実際の製品に関する知識を持つことなく記述されているので、「決定」と言っているのは
このパターンによって実行時にサブクラス自体が決定できるからではなく、むしろ実際には
どのサブクラスを使って製品を作成するかで決まるからです。
Product ...