將一些對象的相關功能集合在一格類中
乍看之下和單件模式沒什麼不同
深入看看模式的定義
才發現中介者模式的集合含義是不同的
單件模式是將相關的功能集合在某一類中
供給許多類使用
但這些類之間是沒什麼關系的
中介者模式是將需要交互的類的交互功能合並在某個類中
這個類充當中介
也可以看成調度
這樣做是為了降低類之間的耦合
中介者類也能充當一個交互的層或某些適配功能
比如
我們有一個流程驅動
其中的某一個狀態需要提交到下一操作
這時
是在狀態類中派生使用下一個狀態/操作類?還是提交給流程驅動類
由他來進行提交的處理呢?因為可能狀態提交會帶來某些額外的操作
或者流程是用戶運行時決定的
這時當前狀態是不知道下一狀態是什麼
就無法進行有效的編碼
或者
在某一個GUI中
某些成員(某個按鈕
列表等)的變化將會影響到許多其他的成員
這時使用觀察者模式將會比較復雜(可能是N*M)
編碼成本會比較高
又沒有復用的可能
就可以考慮使用中介者模式了
From:http://tw.wingwit.com/Article/program/net/201311/12897.html