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

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

#contents


*Abstract Factoryパターン [#mfe284fe]

-生成に関するパターンの一種。
-関連したり依存したりするするオブジェクト群を意識することなく、生成するためのインタフェースを提供するもの。
--例えば、複数のオブジェクトを管理しているグループがあったとする。このときそのグループに属しているオブジェクトがどんなものかを意識することなく、同じ構成のグループを作成することができる。
--複数のオブジェクトを管理しているグループは、オブジェクトを作成する工場(factory)である。
-工場クラスのバリエーションが増えたとしても、利用クラスが呼び出すAsbstract Factoryクラスの抽象メソッドはそのまま有効なので、利用クラスのソースに修正は入らないで済む。


*適用場面 [#m8f0a13c]

-オブジェクトのファミリー(グループ)があり、正しい組み合わせで生成されることを保障したい場合
--このような関連性を持った一群オブジェクトを''オブジェクトファミリー''と呼ぶ。
--オブジェクトファミリに含まれるオブジェクトは、インスタンス化にあたり正しく生成し、プログラム中の必要なところへ届けられなければならない。
--正しいインスタンス化の方法は1箇所にまとめておくべきである。
---プログラムに同じようなコードが存在すべきではない。
-再利用性のあるプログラム、あるいはフレームワークの設計において、オブジェクトのファミリーの将来予想される様々な実装に、設計の変更なしに対応できるようにするとき

*参考文献 [#m7ccd37d]

-『Javaデザインパターンハンドブック』
-『Head Firstデザインパターン』