プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

4.FactoryMethod インスタンス生成をサブクラスに任せる

インスタンスの作り方をスーパークラスで定め、肉付けをサブクラスに任せる。

f:id:p-monster:20121219174953p:plain

Product・・・生成されるインスタンスが持つべきAPI
Creator・・・Productを生成する抽象クラス。抽象メソッドを使ってProductを作る。実際のインスタンス生成はConcreteCreatorに任せる
ConcreteProduct・・・Productの実装
ConcreteCreator・・・Creatorの実装

関連しているパターン

TemplateMethod・・・Creator役でProductを生成する際、TemplateMethodになる。
Singleton・・・Creator役は多くの場合Singletonとして作れる。
Composite・・・ProductにCompositeを当てはめられる場合がある
Iterator・・・コンテナがIteratorを作る時にFactoryMethodが使われる場合がある

参考:

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門