91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java設計模式之中介者模式怎么實現

發布時間:2023-04-26 16:06:47 來源:億速云 閱讀:101 作者:iii 欄目:開發技術

這篇文章主要介紹了Java設計模式之中介者模式怎么實現的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java設計模式之中介者模式怎么實現文章都會有所收獲,下面我們一起來看看吧。

介紹

Java中介者模式(Mediator Pattern)是一種行為設計模式,它可以降低多個對象之間的耦合性,通過一個中介者對象來協調這些對象的交互.

在中介者模式中,多個對象之間的交互不是直接進行的,而是通過一個中介者對象來進行的.這個中介者對象封裝了對象之間的交互邏輯,每個對象只需要與中介者對象進行通信,而不需要與其他對象直接進行通信.這種模式可以有效的減少代碼的復雜度和維護成本,提高系統的可擴展性和可維護性.

在Java中, 中介者模式可以通過一個接口或抽象類來定義中介者對象,該中介者對象可以定義一些方法來處理對象之間的通信.同時,需要實現一些具體的對象類,這些對象類需要持有中介者對象,并且需要實現一些方法來與中介者對象進行通信.通過這種方式,可以實現對象之間的解耦,提高代碼的可讀性和可維護性.

實現

抽象中介者

public abstract class Mediator {
    public abstract void send(String message, Colleague colleague);
}

具體中介者

public class ConcreteMediator extends Mediator{
    private ConcreteColleague1 concreteColleague1;
    private ConcreteColleague2 concreteColleague2;
    public void setConcreteColleague1(ConcreteColleague1 concreteColleague1) {
        this.concreteColleague1 = concreteColleague1;
    }
    public void setConcreteColleague2(ConcreteColleague2 concreteColleague2) {
        this.concreteColleague2 = concreteColleague2;
    }
    @Override
    public void send(String message, Colleague colleague) {
        if (colleague == concreteColleague1){
            concreteColleague2.receive(message);
        }else {
            concreteColleague1.receive(message);
        }
    }
}

抽象同事類

public abstract class Colleague {
    protected Mediator mediator;
    public Colleague(Mediator mediator) {
        this.mediator = mediator;
    }
    /**
     * 發送消息
     *
     * @param message
     */
    public abstract void send(String message);
    /**
     * 消費消息
     * @param message
     */
    public abstract void receive(String message);
}

具體同事類

public class ConcreteColleague1 extends Colleague {
    public ConcreteColleague1(Mediator mediator) {
        super(mediator);
    }
    /**
     * 發送消息
     *
     * @param message
     */
    @Override
    public void send(String message) {
        mediator.send(message, this);
    }
    /**
     * 消費消息
     *
     * @param message
     */
    @Override
    public void receive(String message) {
        System.out.println("concreteColleague1收到消息:" + message);
    }
}
public class ConcreteColleague2 extends Colleague {
    public ConcreteColleague2(Mediator mediator) {
        super(mediator);
    }
    /**
     * 發送消息
     *
     * @param message
     */
    @Override
    public void send(String message) {
        mediator.send(message, this);
    }
    /**
     * 消費消息
     *
     * @param message
     */
    @Override
    public void receive(String message) {
        System.out.println("concreteColleague2收到消息:" + message);
    }
}

測試

public class Demo {
    public static void main(String[] args) {
        ConcreteMediator mediator = new ConcreteMediator();
        ConcreteColleague1 concreteColleague1 = new ConcreteColleague1(mediator);
        ConcreteColleague2 concreteColleague2 = new ConcreteColleague2(mediator);
        mediator.setConcreteColleague1(concreteColleague1);
        mediator.setConcreteColleague2(concreteColleague2);
        concreteColleague1.send("Hello concreteColleague2");
        concreteColleague2.send("Hello concreteColleague1");
    }
}

Java設計模式之中介者模式怎么實現

在上面代碼中,抽象中介者Mediator定義了同事類之間通信的接口,具體中介者類ConcreteMediator實現了這個接口,并持有同事類列表.抽象同事類Colleague定義了同事類的通信接口,具體同事類ConcreteColleague1和ConcreteColleague2分別實現了這個接口,實現了具體的通信邏輯.在測試代碼中,我們創建了一個中介者對象,然后創建了兩個同事對象并將他們加入到中介者對象的同事列表中,最后測試了它們之間的通信.

關于“Java設計模式之中介者模式怎么實現”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java設計模式之中介者模式怎么實現”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白河县| 二连浩特市| 东港市| 阳春市| 宝坻区| 大荔县| 钟山县| 邯郸县| 浦县| 江山市| 共和县| 古蔺县| 金华市| 庄浪县| 永济市| 清丰县| 靖边县| 游戏| 集安市| 荆门市| 青川县| 施甸县| 定西市| 尚义县| 油尖旺区| 广平县| 闽侯县| 鸡西市| 丰县| 静乐县| 泾阳县| 延安市| 焦作市| 郓城县| 武安市| 乌苏市| 莱阳市| 廊坊市| 汉寿县| 长白| 青州市|