【メディエーターパターン】

Mediatorパターン とは?

最終更新:
💡 部品どうしの連携ルールを、仲介役にまとめる

複数のオブジェクトが協調するやり取りを、仲介役のオブジェクトへまとめるデザインパターン。参加するオブジェクトが互いの詳細を直接知る必要を減らし、連携のルールを整理する。すべての処理や依存関係をなくす仕組みではない。

📌 このページのポイント
Mediator:連携のルールを仲介チェック変更入力欄を有効に通知仲介役ルールを判断保存ボタン状態を更新指示部品の仕事と、連携のルールを分けるよ
画面の連携例。通知を受けた仲介役が、入力欄と保存ボタンを調整します。矢印はこの例の通知・指示の方向です。
ひよこ ひよこ
仲介役は、何をするの?
ペンギン先生 ペンギン先生
参加する部品から知らせを受け、必要な部品へ指示して連携を調整するよ。各部品に他の部品の動かし方を全部持たせず、協調するルールを仲介役にまとめるんだ。
ひよこ ひよこ
画面の部品で、例を見せて!
ペンギン先生 ペンギン先生
たとえばチェックを付けたら入力欄を有効にし、保存ボタンの状態も変える画面だよ。チェックの部品が両方を直接操作する代わりに、仲介役へ知らせ、仲介役が必要な部品を動かす。これは説明用の例だよ。
ひよこ ひよこ
みんな、知らせを送るだけ?
ペンギン先生 ペンギン先生
受け取ることもあるよ。仲介役は通知を受けるだけの箱ではなく、他の部品への指示や調整も担当する。図ではチェックから仲介役、仲介役から入力欄とボタンへ向かう流れを示しているんだ。
ひよこ ひよこ
全部の処理を、仲介役へ移すの?
ペンギン先生 ペンギン先生
個々の部品自身の仕事は部品に残すよ。まとめるのは連携のルール。何でも集中させると仲介役が巨大になり、変更しにくくなる。画面や用途に合った範囲に責務を絞ろう。
ひよこ ひよこ
専用ライブラリや、通信サーバーが必要?
ペンギン先生 ペンギン先生
必須ではないよ。同じプログラム内のオブジェクトでも実装できる。Microsoftの.NETの例は、MediatRを使って要求をハンドラーへ渡している。ライブラリ名と設計パターンそのものは区別しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Mediatorパターン」って出てきたら「部品どうしのやり取りを仲介役にまとめる設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Mediator pattern」 = 仲介者のパターン
💬 Mediatorは仲介する人のこと。部品どうしの連携を取りまとめる役を表すよ。

参考資料

← 用語集にもどる