亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

元江| 卫辉市| 扬中市| 厦门市| 曲麻莱县| 高青县| 铜川市| 扶余县| 漳浦县| 冷水江市| 定安县| 荃湾区| 石泉县| 玛多县| 赤水市| 恩施市| 库伦旗| 博客| 类乌齐县| 铜梁县| 台州市| 道孚县| 浮梁县| 古蔺县| 定州市| 晋江市| 安多县| 岱山县| 宾川县| 玉溪市| 岗巴县| 印江| 特克斯县| 饶河县| 北票市| 莲花县| 博爱县| 甘南县| SHOW| 灵寿县| 阿克陶县|