Skip to content

Latest commit

 

History

History

mediator

Observer

オブジェクト間の無秩序な依存関係を減らすことができる動作設計パターン

オブジェクト間の直接通信を制限し、メディエーターオブジェクトを介してのみコラボレーションを強制する

一部のクラスは他のクラスと緊密に結合されているため、変更が難しい場合に適用

メリット

  • 単一責任の原則。さまざまなコンポーネント間の通信を1つの場所に抽出できるため、理解と保守が容易になる
  • オープン/クローズド原則。実際のコンポーネントを変更することなく、新しいメディエーターを導入できる
  • プログラムのさまざまなコンポーネント間の結合を減らすことができる
  • 個々のコンポーネントをより簡単に再利用できる

デメリット

  • 神オブジェクトになる可能性

他パターンとの関係性

  • Chain of Responsibility、Command、Mediator、Observerは、リクエストの送信者と受信者を接続するさまざまな方法に対応
  • Facadeと似てる
  • Observerとの違いがわからない

例題

  • 駅の交通システム
  • 2つの列車が相互に通信することはない
  • 出発した列車は駅に通知し、キュー内の次の列車が到着させる