このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*目次 [#i2d54ad7]

#contents


*Factory Methodパターン [#cdef9063]

-生成に関するパターンの一種。
-オブジェクトを生成する際のインタフェースだけを規定し、実際にどのクラスをオブジェクト化するかはサブクラスにまかせる。
--Abstract Factoryパターンはオブジェクトの作成を管理する工場があるが、Factory Methodパターンでは関連するオブジェクトは自分で生成する。
-抽象クラスを基本とするサブクラスだから、サブクラスを肉付けしなければならない。つまり、サブクラスがオブジェクトの生成を行うようにする。
-Factory Methodパターンでは抽象クラスを利用させて、利用する側がオブジェクトを生成するときに個々のサブクラスを意識させない作りにするのが大事。
-Facotry Methodパターンはオブジェクト作成のためのインタフェースを定義するが、どのクラスをインスタンス化するかについてはサブクラスに決定させる。
--Factory Methodにより、クラスはサブクラスにインスタンス化を先送りできる。
-他のファクトリと同様に、Factory Methodパターンは具象型のインスタンス化をカプセル化する方法を提供する。
-オブジェクト作成をカプセル化する。
--作成するオブジェクトをサブクラスに作成させることによってオブジェクト作成をカプセル化する。

*使いどころ [#b9e92fe1]

-インスタンスの生成の前や後に色々な処理をやる必要がある場合、それをクライアント側にやららせるのではなく、Factoryクラス側にやらせる。
--クライアント側は生成するオブジェクトの生成過程まで気にする必要はなく、メインロジックに気を使えばよい。
--このように設計しておくことにより、オブジェクトの生成過程に変更が入ったとしても、クライアント側を修正する必要はない。


*参考文献 [#ba58a9cf]

-『Head Firstデザインパターン』