設計模式學習總結(23) 中介者模式

本系列主要記錄設計模式的意圖是什麼,它要解決一個什麼問題,什麼時候可以使用它;它是如何解決的,掌握它的結構圖,記住它的關鍵代碼;能夠想到至少兩個它的應用實例,一個生活中的,一個軟件中的;這個模式的優缺點是什麼,其有哪些使用場景,在使用時要注意什麼。

尊重作者,轉載請註明曄陽的Bloghttp://blog.csdn.net/hacke2


23.中介者模式


意圖:用一箇中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。
主要解決:對象與對象之間存在大量的關聯關係,這樣勢必會導致系統的結構變得很複雜,同時若一個對象發生改變,我們也需要跟蹤與之相關聯的對象,同時做出相應的處理
什麼時候使用:多個類相互耦合,形成了網狀結構
如何解決 :將上述網狀結構分離爲星型結構
結構圖

關鍵代碼:對象 Colleague 之間的通信封裝到一個類種單獨處理
應用實例:1 、中國加入WTO,之前是各個國家相互貿易,結構複雜,現在是各個通過WTO來互相貿易 2、機場調度系統 3、 MVC框架,其中C(控制器)就是M和V的中介者
優點: 1、降低了類的複雜度將一對多轉化成了一對一 2、各個類之間的解耦 3、符合迪米特原則
缺點: 1、中介者會龐大,變得複雜難以維護
使用場景:1、 系統中對象之間存在比較複雜的引用關係,導致他們之間的依賴關係結構混亂而且難以複用該對象。
2、 想通過一箇中間類來封裝多個類中的行爲,而又不想生成太多的子類。
注意事項:不應當在職責混亂的時候使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章