【メディエーターパターン】
Mediatorパターン とは?
💡 チャットサーバーのように、全員の会話をひとりが仕切る
📌 このページのポイント
- オブジェクト間の直接依存をなくし、仲介者だけと通信する
- クラス間の結合度を下げて変更しやすくなる
- 仲介者が肥大化しやすい点には注意が必要
クラスがたくさんあると、お互いに直接連絡し合って大変なことになりそうだね!
そうだね。クラスA→B、B→C、C→Aみたいに直接つながると、変更したとき全部修正が必要になって大変だよ。そこで登場するのがMediatorパターンだよ。
Mediatorって何をするの?
全員の通信窓口になる「仲介者クラス」を1つ作るんだ。チャットアプリでいうと、ユーザー同士が直接メッセージを送り合うんじゃなく、全部チャットサーバーを経由するイメージだよ。
なるほど!そうすると各クラスはMediatorとだけ話せばいいんだね!
デメリットはないの?
Mediatorクラスに全ロジックが集まりすぎて、巨大になってしまう「God Object」問題が起きやすいよ。責任を適切に分割することが大事だね。
仲介者が頑張りすぎないようにするのが大事なんだね!
そう!Observerパターンと組み合わせて通知を分散させるのも定番テクニックだよ。
まとめ:ざっくりこれだけ覚えればOK!
「Mediatorパターン」って出てきたら「仲介者を通じてオブジェクトを疎結合にする設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Mediator Pattern」 = 仲介者パターン
💬 Mediatorは「仲裁者・調停者」という意味で、外交交渉を仲介する人をイメージするとわかりやすいだよ