天天看點

iOS設計模式之中介者模式中介者模式

中介者模式又叫做調停者模式,其實就是中間人或者調停者的意思。

盡管将一個系統分割成許多對象通常可以增加可複用性,但是對象之間的連接配接又降低了可複用性。

如果兩個類不必彼此直接通信,那麼着兩個類就不應當發生直接的互相作用。如果其中一個類需要調用另一個類的方法的話,可以用過第三者轉發這個調用。而這個第三者就是中介者。

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

uinavigationviewcontroller就是屬于一個中介者。

中介者模式很容易在系統中應用,也很容易在系統中誤用。當系統出現了多對多互動複雜的對象群時,不要急于使用中介者模式,而要先反思你在系統上設計是否合理。

優點就是集中控制,減少了對象之間的耦合度。缺點就是太過于集中。

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

因為對象引用了許多其他對象并與其通信,導緻對象難以複用。

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

coordinatingviewcontroller.h

coordinationgviewcontroller.m

上面這個就是中介類。

在viewcontroller.m

thirdviewcontroller.m

third2viewcontroller.m

上面的這兩個就是視圖遷移的中介處理thirdviewcontroller和third2viewcontroller。

繼續閱讀