[[パターン指向リファクタリング入門/Creation Methodによるコンストラクタの置き換え]]

* Factoryによるクラス群の隠蔽 [#tfab3f4f]
** 兆候 [#t1811a9c]
1つのパッケージ内にある共通のインタフェースを実装しているクラス群を、クライアントが直接インスタンス化
している。

** 処置 [#r1532a33]
クラスのコンストラクタを場ブリックでなくし、クライアントにはFactory経由でインスタンスを生成させる。


** 動機 [#m103db41]
クライアントが直接クラスをインスタンス化できて役立つのは、それらのクラスの存在そのものを知る必要が
ある場合だけである。

「共通インタフェースを実装したインスタンスを生成して返す」という責務をFactoryに持たせることで、クライアントからパッケージ内のクラスを隠蔽することができる。
これによって、
- クライアントが共通のインタフェースを通じてクラスとやりとりするようになる(インタフェースに対するプログラミング)。
- パッケージ外に公開する必要のないクラスが隠蔽され、パッケージの「概念的重み」を減らすことができる。
- Factoryに用意された意図の明確なCreation Methodを用いてインスタンスを生成することができる。

** 手順 [#gf3cadcc]
** コメント [#d3d9ef06]
#comment

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc