パターン指向リファクタリング:Factoryによるクラス群の隠蔽

なんかすこしだけまとめたので、めもめも。

Clientが直接クラスをインスタンス化して役立つのは、クライアントがそのクラスを知る必要があるときだけ


Clientが知る必要がないとき、このパターンを使うといい。


動機

  • インターフェースに対してプログラミングする、実装に対してではない
  • パッケージの概念的重みを減らす
  • Factoryに用意されたCreation Methodの意図が明確。インスタンスの構築が簡単に

問題

  • 依存が循環(修正がI/Fにも及ぶから)
  • Factoryでもあり、実装でもあるクラスが出来る
    • 不快なときはFactoryの抽出で対応