問題:當專案有多個系統或者管理類,他們之間需要互相呼叫的時候,怎麼辦。
如果直接在這些系統或者管理類之間互相注入對方的引用,這雖然可以暫時解決問題,但後期會造成**的依賴程度變高,耦合難解,而且單個類知道的引用內容過多,不符合最少只是原則,推薦使用中介者模式解耦和。
抽象類如下:
具體實現如下/// /// 中介者介面
///
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發出通知
設計模式 中介者模式
假如沒有總經理,下面三個部門 財務部,市場部,研發部。財務部要發工資,讓大家核對公司需要跟市場部和研發部都通氣 市場部要接新專案,需要研發部處理技術 需要財務部出資金。市場部跟各個部門打交道。雖然只有三個部門,但是關係非常亂。實際上,公司都有總經理。各個部門有什麼事情都通報到總經理這裡,總經理再通知...
設計模式 中介者模式
在我們的日常生活中經常需要購買各種各樣的東西,房子 車子 生活用品等等。那麼我們並不會對各個產品都了解,所以銷售人員應運而生,他們了解產品,然後他們根據你的需求在向你們推薦符合你們要求的產品。這些銷售人員就相當於中介,處於客戶和產品之間,為你們搭橋牽線。這就是這篇需要講述的乙個設計模式 中介者模式。...
設計模式 中介者模式
在學習這個模式之前,我們先來回顧一下乙個物件導向的設計原則 迪公尺特原則,這個原則告訴我們 乙個物件盡可能少跟其他物件進行關聯,就像乙個人要少跟陌生人說話一樣。而中介者模式,也正是為了協調多個物件之間複雜的引用關係。我們來看乙個例子,雖然這個例子不太好,後期想個好一點的例子再改。在中介者模式中,主要...