【オブジェクト指向のこころ】20章 生成に関するパターンから得られる教訓

デザインパターンとともに学ぶオブジェクト指向のこころ」の学習記録。
「第20章 生成に関するパターンから得られる教訓」のまとめ。

オブジェクトの生成に関する一般的な規則

オブジェクトの生成と管理を検討する段階で従うべき一般的な規則がある。
それは「オブジェクトは、他のオブジェクトを生成および/あるいは管理するか、他のオブジェクトを使用するかのどちらかのみを行い、双方を行ってはいけない」というもの。

この規則に従うことで、分担が明確化され、結合度が低下する。

Factoryの効果

Factoryを利用することで次の効果が得られる。

  • あるオブジェクトを「使用するオブジェクト」は、自らと連携しているオブジェクトがなんであるか、自らがどういったオブジェクトを持てるのか関知しなくなる。
  • あるオブジェクトを「生成するオブジェクト(ファクトリ)」は、生成、管理するオブジェクトのみについて関知しており、オブジェクトがどのように使用されるかについてはいっさい関知しない。

こういった関心事の分離により、凝縮度を高め、結合度を低くすることができる。

http://www.plantuml.com/plantuml/png/ZP1DIt915CVtyoa6zygp5dbGWy1rz076yLItxelCdBkmSd7d4aXjMfZGIgBenKKIjKX8_J2dr8-HtUYEGbRBcNF-BxzJr2WKXfxBz9xZruKI7fUkqBg4g9ngY52HWR_Xx0F_ntQS6d3mwjZW7dXLK9en1HA5l-q2VnsEf-rRYix9d93fKTmXyqpcXaoVujRikZCr0tx0WkekIEIPdzSpN6Y-gK7D5KsMYiXSKVn8PapnsSTk_49cGD68eYv5_SdnSFPmaHZSpVyJZugFeBQ4XCIekLXuskvEMgT_BlnstvrT7jcmfz7S80qh9MbhWIyL89HixT-bvILfULcQW7uojIZkhRZKkf0OgCONOtAutFy5-3mFDJ3xBXncixRjga6PMQ12BfV6vBbK812OBVtjk0X-BVJSTm00

生成されるオブジェクトは、「使用するオブジェクト」から完全に隠蔽されるため、「使用するオブジェクト」に手を触れることなく、新たな実装を追加したり既存の実装を除去できるようになる。