設計模式 中介者模式

2021-08-20 07:50:13 字數 1278 閱讀 5359

問題:當專案有多個系統或者管理類,他們之間需要互相呼叫的時候,怎麼辦。

如果直接在這些系統或者管理類之間互相注入對方的引用,這雖然可以暫時解決問題,但後期會造成**的依賴程度變高,耦合難解,而且單個類知道的引用內容過多,不符合最少只是原則,推薦使用中介者模式解耦和。

抽象類如下:

/// /// 中介者介面

///

public abstract class mediator

/// /// 同事介面

///

public abstract class colleague

//回應資訊 即響應呼叫方法

public abstract void request(string message);

}

具體實現如下

public class concreatecolleague1 : colleague

//發出請求

public void action()

//回應請求

public override void request(string message)

}public class concreatecolleague2 : colleague

//發出請求

public void action()

//回應請求

public override void request(string message)

}public class concretemediator : mediator

public void setcolleague2(concreatecolleague2 thecolleague)

/// /// **請求到對應處

///

///

///

public override void sendmessage(colleague thecolleague, string message)

if (m_colleague2 == thecolleague)

}}

測試**如下:

void test()

得到結果如下:

concretatecolleague2.request: colleage1發出通知

concretatecolleague1.request: colleage2發出通知

設計模式 中介者模式

假如沒有總經理,下面三個部門 財務部,市場部,研發部。財務部要發工資,讓大家核對公司需要跟市場部和研發部都通氣 市場部要接新專案,需要研發部處理技術 需要財務部出資金。市場部跟各個部門打交道。雖然只有三個部門,但是關係非常亂。實際上,公司都有總經理。各個部門有什麼事情都通報到總經理這裡,總經理再通知...

設計模式 中介者模式

在我們的日常生活中經常需要購買各種各樣的東西,房子 車子 生活用品等等。那麼我們並不會對各個產品都了解,所以銷售人員應運而生,他們了解產品,然後他們根據你的需求在向你們推薦符合你們要求的產品。這些銷售人員就相當於中介,處於客戶和產品之間,為你們搭橋牽線。這就是這篇需要講述的乙個設計模式 中介者模式。...

設計模式 中介者模式

在學習這個模式之前,我們先來回顧一下乙個物件導向的設計原則 迪公尺特原則,這個原則告訴我們 乙個物件盡可能少跟其他物件進行關聯,就像乙個人要少跟陌生人說話一樣。而中介者模式,也正是為了協調多個物件之間複雜的引用關係。我們來看乙個例子,雖然這個例子不太好,後期想個好一點的例子再改。在中介者模式中,主要...