中介者模式

2021-08-31 13:28:13 字數 856 閱讀 6602

什麼時候使用

元件化開發時候,往往涉及到模組間的通訊時候會用中介者模式進行模組與模組的送耦合。

往往在控制器之間跳轉時候會用中介者模式,進行中間管理。統一管理跳轉。

模式圖

舉例如我們在進行元件化開發時候,假如在pod裡用兩個我們自己寫的元件。這兩個元件在彼此#import,彼此緊耦合在一起。當我們開發乙個新的專案時候這個專案只是想用其中乙個元件,這時候就會很尷尬,當匯入元件a時候發現它在#import元件b。這時候解決方案有三個。

修改元件a去掉b元件耦合,這種辦法其實是不好的,因為元件a已經是我們開發好的成型的元件了,這樣修改元件源**不合理。也比較麻煩。

也匯入元件b,這種辦法更加不可取,因為元件b我們根本不需要這樣就相當於在工程中加入了大量的無用**,特別是如果有眾多元件都是這樣彼此耦合的情況那就需要匯入大量的無用元件很不合理。

利用中介者模式。新建立乙個類專門用作管理所有元件的通訊。這樣如果我們僅僅只是用元件a,那麼我們就可以只是匯入元件a和這個中介者類,修改中介者類去掉關於b元件的部分**即可。這種處理方式更好,好處如下。

如果沒有這個中介者,那麼所有元件彼此都緊緊耦合在一起,一團糟。有了乙個中介者作為中間的管理者,使得元件之間彼此並不知道彼此只是在和中介者類通訊。這樣更合理。

當只是使用其中乙個元件時候,只是匯入乙個元件並修改中介者類去掉其他元件部分。這樣就實現了,在不改動元件源**的情況下實現了松耦合。我們做的只是修改了中介者類部分**,其實中介者類我們是可以修改的,因為它不是元件的源**。因為它只是中間的管理者,那麼當去掉其他元件時候,這個中介者當然就不在需要管理去掉的元件了,所以修改它是合理的。

中介者模式

1.中間 類 namespace intermediarypattern 成員物件需要知道是哪個中介者在通知它事情 public abstract class member 各成員間要傳送訊息 public abstract void send string msg 這個方法其實是具體實施發訊息的 ...

中介者模式

中介者模式就是在物件之間的關係很複雜時用,名如其人,就像租房的黑中介一樣,如果每個房東都拿著很多租房者的資訊很麻煩,每個租房者都要拿著很多房東的資訊也麻煩,所以需要乙個中介來拿著這些資訊,租房者只需要發出租房的請求,中介會給你介紹合適的房東,房東只需要提交房屋資料就等著中介的人帶著訪客看房拿錢就行了...

中介者模式

中介者模式 mediator pattern 1 抽象中介者 mediator 角色 抽象中介者角色定義統一的介面用於各同事角色之間的通訊。具體中介者 concrete mediator 角色 具體中介者角色通過協調各同事角色實現協作行為,因此它必須依賴於各個同事角色。同事 colleague 角色...