1 前言
面向對象的設計鼓勵把行為分散到不同對象中。這種分散可能導致對象之間的相互關聯。在最糟糕的情況下,所有對象都彼此了解並相互操作。但是增加的相互關聯又減少了獲得的益處。增加的關聯似的對象很難或不能在不依賴其他對象的情況下工作。應用程序的整體行為可能難以進行任何重大修改,因為行為分布於許多對象。於是結果可能是創建越來越多的子類,以支持應用程序的任何新行為。
2 詳述
2.1 簡述
中介者模式用於定義一個集中的場所,對象間的交互可以在一個中介者對象中處理。其他對象不必彼此交互,因此減少了他們之間的依存關系。
用一個對象來封裝一系列對象的交互方式。中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變他們之間的交互。
2.2 何時使用
(1)對象間的交互雖定義明確然而非常復雜,導致一組對象彼此相互依賴而且難以理解;
(2)因為對象引用了許多其他對象並與其通訊,導致對象難以復用;
(3)想要定制一個分布在多個類中的邏輯或行為,又不想生成太多子類。
2.3 在IOS中得應用
中介者模式不只適用於把各種對象間錯綜復雜的關系集中化,也適合組織兩個不同視圖間視圖遷移。通過把一個視圖加到另一個視圖之上來管理視圖遷移的IOS應用程序相當常見。這樣一個視圖需要知道第二個視圖並保持對他的引用,然後是第三個,一次類推。
如果某種集中的角色來組織全部UI交通,只要代碼可服用並可維護,日子就會好過得多。這一角色應該像一名以前的交通警察,在十字路口協調來自不同方向的交通。交通警察的方式提供了管理不同視圖的一種送耦合方案。
3 結語
以上是所有內容,希望對大家有所幫助。