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