成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

中介者模式(Mediator)

Lsnsh / 2717人閱讀

摘要:中介者模式一中介者模式定義用一個(gè)中介者對(duì)象封裝一系列的對(duì)象交互,中介者使各對(duì)象不需要顯示的相互作用,從而使耦合松散,而且可以獨(dú)立的改變他們之間的交互角色抽象中介者類具體中介者實(shí)現(xiàn)類同事類二具體實(shí)現(xiàn)創(chuàng)建抽象中介者對(duì)象創(chuàng)建具體中介者對(duì)象創(chuàng)建同事

中介者模式

一. 中介者模式 1.1 定義

用一個(gè)中介者對(duì)象封裝一系列的對(duì)象交互,中介者使各對(duì)象不需要顯示的相互作用,從而使耦合松散,而且可以獨(dú)立的改變他們之間的交互.

1.2 角色

抽象中介者類(AbstractMediator).

具體中介者實(shí)現(xiàn)類(Mediator).

同事類(Colleague).

二. 具體實(shí)現(xiàn) 2.1 創(chuàng)建抽象中介者對(duì)象
    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 創(chuàng)建具體中介者對(duì)象
    public class Mediator extends AbstractMediator {
        public void executeToA() {
            System.out.println("Mediator executeToA ...");
        }
        public void executeToB() {
            System.out.println("Mediator executeToB ...");
        }
    }
2.3 創(chuàng)建同事類
    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 調(diào)用
    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 ...
三. 優(yōu)缺點(diǎn) 3.1 優(yōu)點(diǎn)

各個(gè)同事類之間的解耦.

降低類的復(fù)雜度.

3.2 缺點(diǎn)

同事類過(guò)多會(huì)使中介者龐大,難以維護(hù).

四. 源碼
    https://github.com/Seasons20/DisignPattern.git

END

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69633.html

相關(guān)文章

  • 設(shè)計(jì)模式(二十三)介者模式

    摘要:中介者模式就是簡(jiǎn)化這種關(guān)系的模式,有兩個(gè)角色關(guān)系成員中介者。成員,不必包含與他有關(guān)系的成員,他只需包含一個(gè)中介者,通過(guò)中介發(fā)消息,是委托給中介。他有一個(gè)發(fā)消息的方法,中介通過(guò)判定成員來(lái)確定恢復(fù)消息。先看圖: showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada9908dd0b898); 有很多孤立的人這里是3個(gè),如果有100個(gè),是不是圖很...

    ztyzz 評(píng)論0 收藏0
  • 常用設(shè)計(jì)模式

    摘要:工廠設(shè)計(jì)模式工廠設(shè)計(jì)模式,主要用于進(jìn)行實(shí)例化對(duì)象時(shí)的解耦操作,避免使用關(guān)鍵字實(shí)例化對(duì)象,通過(guò)反射,根據(jù)類名稱動(dòng)態(tài)創(chuàng)建對(duì)象示例靜態(tài)工廠模式構(gòu)造方法私有化獲取指定類名稱的對(duì)象動(dòng)態(tài)代理模式動(dòng)態(tài)代理模式,主要用于對(duì)同一接口子類的相同邏輯進(jìn)行代理操作 工廠設(shè)計(jì)模式 工廠設(shè)計(jì)模式,主要用于進(jìn)行實(shí)例化對(duì)象時(shí)的解耦操作,避免使用new關(guān)鍵字實(shí)例化對(duì)象,通過(guò)反射,根據(jù)類名稱動(dòng)態(tài)創(chuàng)建對(duì)象 示例: pa...

    fizz 評(píng)論0 收藏0
  • 一起學(xué)設(shè)計(jì)模式 - 介者模式

    摘要:在地球上最大的中介者就是聯(lián)合國(guó)了,它主要用來(lái)維護(hù)國(guó)際和平與安全解決國(guó)際間經(jīng)濟(jì)社會(huì)文化和人道主義性質(zhì)的問(wèn)題。所以對(duì)于關(guān)系比較復(fù)雜的系統(tǒng),我們?yōu)榱藴p少對(duì)象之間的關(guān)聯(lián)關(guān)系,使之成為一個(gè)松耦合系統(tǒng),我們就需要使用中介者模式。 中介者模式(Mediator Pattern)屬于行為型模式的一種,用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯式地相互引用,從而使其耦合松散,而且可以獨(dú)...

    denson 評(píng)論0 收藏0
  • 我的Java設(shè)計(jì)模式-介者模式

    摘要:那在我們的程序設(shè)計(jì)中有沒(méi)有這樣的模式有的,中介者模式應(yīng)運(yùn)而生,目的就是處理這樣的情景問(wèn)題。最后來(lái)看客戶端的實(shí)現(xiàn),代碼如下被攻打,請(qǐng)求支援可以看到,表面上請(qǐng)求還是從發(fā)出,但是已經(jīng)委托了中介者進(jìn)行業(yè)務(wù)邏輯和流程的處理。 本篇文章已授權(quán)微信公眾號(hào) guolin_blog (郭霖)獨(dú)家發(fā)布 小時(shí)候鐘愛(ài)戰(zhàn)爭(zhēng)片,《地道戰(zhàn)》、《雞毛信》、《鐵道游擊隊(duì)》一系列的老電影,咦~想起都激動(dòng)得起雞皮疙瘩。不過(guò)...

    SimonMa 評(píng)論0 收藏0
  • Observer和Mediator模式的區(qū)別

    摘要:舉個(gè)例子淘寶商鋪賣家在淘寶上開(kāi)了一個(gè)相機(jī)店最近都有意愿去買但是覺(jué)得價(jià)格稍貴,因此暫時(shí)不打算入手,想等價(jià)格稍微便宜一點(diǎn)后再入手,所以這個(gè)人通過(guò)淘寶先關(guān)注賣家的相機(jī)店。等到賣家的相機(jī)打折后,淘寶會(huì)向這個(gè)人推送打折消息。 Observer觀察者模式 Observer觀察者模式和Pub/sub模式事實(shí)上都是同一套路。這種模式建立起了不同對(duì)象之間的依賴關(guān)系: showImg(https://se...

    wapeyang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Lsnsh

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<