中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

蓝山县| 平江县| 涟水县| 和静县| 延川县| 舞钢市| 宁陕县| 建阳市| 陇南市| 乾安县| 重庆市| 漳州市| 罗平县| 治多县| 凉城县| 丰顺县| 江油市| 玉溪市| 秦安县| 报价| 佛坪县| 山东| 赤水市| 息烽县| 江陵县| 临朐县| 巨野县| 新平| 蓝田县| 自治县| 云南省| 阳江市| 进贤县| 张北县| 九寨沟县| 理塘县| 福鼎市| 承德县| 江陵县| 喀什市| 高密市|