## 8-5 [[🗃️オブジェクト]]で構造を作る
### [[🗃️Facadeパターン]]
- 複数の機能[[🗃️オブジェクト]]群へのアクセスを集約する[[🗃️オブジェクト]]を設けるパターン。
- メリット
- 利用者が使いやすくなる。
- 利用者は、中身がどうなっているかには関心がなくなるため、利用者に影響がない形で、同じ使い方を維持しながら、中身を全く別の実装にさしかえることもできる。
- 抽象のレベルの境界線になることができる。
- 多段階的な抽象度レベルと表現するのに使う。
- [[🗃️ソフトウェア]]の構造には[[🗃️Facadeパターン]]がよく眠っている。
- 利用者が、そこに集中しているのか裏口らから入ってこなくていいようになっているかを設計評価の指針にしていく。
### [[🗃️Mediatorパターン]]
- [[🗃️Facadeパターン]]が、受付であるとするならば、[[🗃️Mediatorパターン]]は、会社の内務マネージャーにあたる。
- 連携に関する複雑さを[[🗃️Mediatorパターン]]の[[🗃️クラス]]に集中させる
- 関係する[[🗃️オブジェクト]]が経ても、メディエーター以外の[[🗃️クラス]]には影響が発生しない。
[[🗃️Facadeパターン]]があれば裏方をいくら作り替えても平気。
複雑な内部構造は、[[🗃️Mediatorパターン]]に任せる。