天天看點

IOS設計模式學習(11)中介者

1 前言

面向對象的設計鼓勵把行為分散到不同對象中。這種分散可能導緻對象之間的互相關聯。在最糟糕的情況下,所有對象都彼此了解并互相操作。但是增加的互相關聯又減少了獲得的益處。增加的關聯似的對象很難或不能在不依賴其他對象的情況下工作。應用程式的整體行為可能難以進行任何重大修改,因為行為分布于許多對象。于是結果可能是建立越來越多的子類,以支援應用程式的任何新行為。

2 詳述

2.1 簡述

中介者模式用于定義一個集中的場所,對象間的互動可以在一個中介者對象中處理。其他對象不必彼此互動,是以減少了他們之間的依存關系。

用一個對象來封裝一系列對象的互動方式。中介者使各對象不需要顯式地互相引用,進而使其耦合松散,而且可以獨立地改變他們之間的互動。

2.2 何時使用

(1)對象間的互動雖定義明确然而非常複雜,導緻一組對象彼此互相依賴而且難以了解;

(2)因為對象引用了許多其他對象并與其通訊,導緻對象難以複用;

(3)想要定制一個分布在多個類中的邏輯或行為,又不想生成太多子類。

2.3 在IOS中得應用

中介者模式不隻适用于把各種對象間錯綜複雜的關系集中化,也适合組織兩個不同視圖間視圖遷移。通過把一個視圖加到另一個視圖之上來管理視圖遷移的IOS應用程式相當常見。這樣一個視圖需要知道第二個視圖并保持對他的引用,然後是第三個,一次類推。

如果某種集中的角色來組織全部UI交通,隻要代碼可服用并可維護,日子就會好過得多。這一角色應該像一名以前的交通警察,在十字路口協調來自不同方向的交通。交通警察的方式提供了管理不同視圖的一種送耦合方案。

3 結語

以上是所有内容,希望對大家有所幫助。

​​

IOS設計模式學習(11)中介者

繼續閱讀