摘要:中介者模式一中介者模式定義用一個中介者對象封裝一系列的對象交互,中介者使各對象不需要顯示的相互作用,從而使耦合松散,而且可以獨立的改變他們之間的交互角色抽象中介者類具體中介者實現類同事類二具體實現創建抽象中介者對象創建具體中介者對象創建同事
中介者模式
一. 中介者模式 1.1 定義用一個中介者對象封裝一系列的對象交互,中介者使各對象不需要顯示的相互作用,從而使耦合松散,而且可以獨立的改變他們之間的交互.
1.2 角色抽象中介者類(AbstractMediator).
具體中介者實現類(Mediator).
同事類(Colleague).
二. 具體實現 2.1 創建抽象中介者對象public abstract class AbstractMediator { private ColleagueA colleagueA; private ColleagueB colleagueB; public abstract void executeToA(); public abstract void executeToB(); public void setColleagueA(ColleagueA colleagueA) { this.colleagueA = colleagueA; } public void setColleagueB(ColleagueB colleagueB) { this.colleagueB = colleagueB; } }2.2 創建具體中介者對象
public class Mediator extends AbstractMediator { public void executeToA() { System.out.println("Mediator executeToA ..."); } public void executeToB() { System.out.println("Mediator executeToB ..."); } }2.3 創建同事類
public class ColleagueA { private AbstractMediator mediator; public ColleagueA(AbstractMediator mediator){ this.mediator = mediator; } public void print(){ System.out.println("ColleagueA print ... "); mediator.executeToB(); } } public class ColleagueB { private AbstractMediator mediator; public ColleagueB(AbstractMediator mediator){ this.mediator = mediator; } public void print(){ System.out.println("ColleagueB print ..."); mediator.executeToA(); } }2.4 調用
public static void main(String[] args) { AbstractMediator mediator = new Mediator(); ColleagueA colleagueA = new ColleagueA(mediator); ColleagueB colleagueB = new ColleagueB(mediator); mediator.setColleagueA(colleagueA); mediator.setColleagueB(colleagueB); colleagueA.print(); colleagueB.print(); }2.5 輸出
ColleagueA print ... Mediator executeToB ... ColleagueB print ... Mediator executeToA ...三. 優缺點 3.1 優點
各個同事類之間的解耦.
降低類的復雜度.
3.2 缺點同事類過多會使中介者龐大,難以維護.
四. 源碼https://github.com/Seasons20/DisignPattern.git
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69633.html
摘要:中介者模式就是簡化這種關系的模式,有兩個角色關系成員中介者。成員,不必包含與他有關系的成員,他只需包含一個中介者,通過中介發消息,是委托給中介。他有一個發消息的方法,中介通過判定成員來確定恢復消息。先看圖: showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada9908dd0b898); 有很多孤立的人這里是3個,如果有100個,是不是圖很...
摘要:在地球上最大的中介者就是聯合國了,它主要用來維護國際和平與安全解決國際間經濟社會文化和人道主義性質的問題。所以對于關系比較復雜的系統,我們為了減少對象之間的關聯關系,使之成為一個松耦合系統,我們就需要使用中介者模式。 中介者模式(Mediator Pattern)屬于行為型模式的一種,用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨...
摘要:那在我們的程序設計中有沒有這樣的模式有的,中介者模式應運而生,目的就是處理這樣的情景問題。最后來看客戶端的實現,代碼如下被攻打,請求支援可以看到,表面上請求還是從發出,但是已經委托了中介者進行業務邏輯和流程的處理。 本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家發布 小時候鐘愛戰爭片,《地道戰》、《雞毛信》、《鐵道游擊隊》一系列的老電影,咦~想起都激動得起雞皮疙瘩。不過...
摘要:舉個例子淘寶商鋪賣家在淘寶上開了一個相機店最近都有意愿去買但是覺得價格稍貴,因此暫時不打算入手,想等價格稍微便宜一點后再入手,所以這個人通過淘寶先關注賣家的相機店。等到賣家的相機打折后,淘寶會向這個人推送打折消息。 Observer觀察者模式 Observer觀察者模式和Pub/sub模式事實上都是同一套路。這種模式建立起了不同對象之間的依賴關系: showImg(https://se...
閱讀 1661·2019-08-30 13:04
閱讀 2213·2019-08-30 12:59
閱讀 1775·2019-08-29 18:34
閱讀 1868·2019-08-29 17:31
閱讀 1263·2019-08-29 15:42
閱讀 3544·2019-08-29 15:37
閱讀 2864·2019-08-29 13:45
閱讀 2776·2019-08-26 13:57