国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java開(kāi)發(fā)】設(shè)計(jì)模式 17:中介者模式

這篇具有很好參考價(jià)值的文章主要介紹了【Java開(kāi)發(fā)】設(shè)計(jì)模式 17:中介者模式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1?中介者模式介紹

中介者模式是一種行為設(shè)計(jì)模式,指用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。

中介者使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。在這個(gè)模式中,中介者負(fù)責(zé)協(xié)調(diào)各個(gè)對(duì)象間的通信,使其流程更加清晰簡(jiǎn)單。

???場(chǎng)景

中介者模式可以應(yīng)用于多個(gè)對(duì)象之間有復(fù)雜的交互關(guān)系的場(chǎng)景,例如一個(gè)大型軟件系統(tǒng)中的模塊之間的協(xié)作、多個(gè)部門(mén)之間的協(xié)作等。中介者模式可以簡(jiǎn)化對(duì)象之間的交互,使得對(duì)象之間的耦合度降低。具體來(lái)說(shuō),通過(guò)引入中介者對(duì)象,可以讓對(duì)象之間的通信集中在中介者對(duì)象上,從而避免了對(duì)象之間的直接依賴關(guān)系,提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。

???優(yōu)點(diǎn)

  1. 減少對(duì)象之間的耦合度:通過(guò)使用中介者對(duì)象,可以將系統(tǒng)中多個(gè)對(duì)象之間的相互作用關(guān)系簡(jiǎn)化為中介者與對(duì)象之間的一種關(guān)系,從而降低系統(tǒng)的復(fù)雜性。
  2. 提高系統(tǒng)的可擴(kuò)展性:由于中介者模式將對(duì)象之間的相互作用關(guān)系抽象到中介者對(duì)象中,所以增加新的對(duì)象和中介者對(duì)象對(duì)原有系統(tǒng)的修改都是非常方便的。
  3. 降低系統(tǒng)的復(fù)雜度:中介者模式將多個(gè)對(duì)象之間的相互作用關(guān)系簡(jiǎn)化為中介者與對(duì)象之間的一種關(guān)系,使得系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)變得更加簡(jiǎn)單。

???缺點(diǎn)

  1. 中介者對(duì)象會(huì)增加系統(tǒng)的復(fù)雜度:中介者對(duì)象需要處理多個(gè)對(duì)象之間的相互作用關(guān)系,所以它的設(shè)計(jì)和實(shí)現(xiàn)會(huì)比較復(fù)雜,這會(huì)增加系統(tǒng)的復(fù)雜度。
  2. 中介者對(duì)象可能會(huì)成為系統(tǒng)的瓶頸:由于中介者對(duì)象需要處理多個(gè)對(duì)象之間的相互作用關(guān)系,所以如果中介者對(duì)象的處理能力不足,可能會(huì)成為系統(tǒng)的瓶頸。
  3. 中介者模式會(huì)將原本分散的系統(tǒng)邏輯集中到一個(gè)地方:中介者模式將系統(tǒng)中多個(gè)對(duì)象之間的相互作用關(guān)系抽象到中介者對(duì)象中,因此原本分散的系統(tǒng)邏輯會(huì)集中到一個(gè)地方,這可能會(huì)使得系統(tǒng)的代碼結(jié)構(gòu)變得復(fù)雜。

2 中介者模式實(shí)現(xiàn)

以房屋中介為例:

???1.定義用戶

/**
 * 用戶
 */
public class User {
    /**
     * 姓名
     */
    private final String name;

    /**
     * 電話
     */
    private final String phone;

    /**
     * 構(gòu)造姓名和電話
     * @param name 姓名
     * @param phone 電話
     */
    public User(String name, String phone) {
        this.name = name;
        this.phone = phone;
    }

    /**
     * 需要具體想找的地址和中介
     * @param address 地址
     * @param mediator 中介
     * @return 用戶
     */
    public User find(String address, Mediator mediator) {
        // 中介根據(jù)地址找房
        return mediator.find(address);
    }

    @Override
    public String toString() {
        return "(姓名:" + name + ",電話:" + phone + ")";
    }
}

???2.定義中介

/**
 * 中介
 */
public class Mediator {
    /**
     * 存儲(chǔ)在售房屋
     */
    private final Map<String, User> userMap = new HashMap<>();

    /**
     * 登記房屋
     * @param address 地址
     * @param user 用戶
     */

    public void register(String address, User user) {
        userMap.put(address, user);
    }

    /**
     * 查找房源
     * @param address 地址
     * @return 房東
     */
    public User find(String address) {
        return userMap.get(address);
    }
}

???3.調(diào)用

public class Client {
    public static void main(String[] args) {
        // 房東
        User landlord = new User("AA", "10011");
        // 租客
        User tenant = new User("BB", "10022");
        // 中介
        Mediator mediator = new Mediator();
        // 中介登記房產(chǎn)
        mediator.register("深圳市深圳灣一號(hào)", landlord);
        // 租客委托中介查找符合要求房子的房東
        User result = tenant.find("深圳市寶安區(qū)城中村", mediator);
        if (result == null) {
            System.out.println("沒(méi)有找到對(duì)應(yīng)的房源");
        } else {
            System.out.print("成功找到對(duì)應(yīng)房源:");
            System.out.println(result);
        }
        // 再次查找
        result = tenant.find("深圳市深圳灣一號(hào)", mediator);
        if(result == null) {
            System.out.println("沒(méi)有找到對(duì)應(yīng)的房源");
        } else {
            System.out.print("成功找到對(duì)應(yīng)房源:");
            System.out.println(result);
        }
    }
}

控制臺(tái)輸出:

沒(méi)有找到對(duì)應(yīng)的房源
成功找到對(duì)應(yīng)房源:(姓名:AA,電話:10011)

這樣就實(shí)現(xiàn)了日常生活中的通過(guò)中介租房。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-421419.html

到了這里,關(guān)于【Java開(kāi)發(fā)】設(shè)計(jì)模式 17:中介者模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 通過(guò)簡(jiǎn)單的中介者模式模型了解迪米特法則(設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐 P14)

    雖然面向?qū)ο蠊膭?lì)將行為分布到各個(gè)對(duì)象中,把對(duì)象劃分成更小的粒度有利于對(duì)象可復(fù)用性,但有時(shí)對(duì)象之間聯(lián)系太多又會(huì)反而降低可復(fù)用性 通過(guò)一個(gè)中介者對(duì)象封裝 一組對(duì)象之間的交互 ,減少對(duì)象間直接耦合,對(duì)象之間的通信集中在中介者對(duì)象中,使得對(duì)象間交互更加簡(jiǎn)

    2024年02月07日
    瀏覽(19)
  • 【設(shè)計(jì)模式——學(xué)習(xí)筆記】23種設(shè)計(jì)模式——中介者模式Observer(原理講解+應(yīng)用場(chǎng)景介紹+案例介紹+Java代碼實(shí)現(xiàn))

    【設(shè)計(jì)模式——學(xué)習(xí)筆記】23種設(shè)計(jì)模式——中介者模式Observer(原理講解+應(yīng)用場(chǎng)景介紹+案例介紹+Java代碼實(shí)現(xiàn))

    普通實(shí)現(xiàn) 在租房過(guò)程中,客戶可能去找房東問(wèn)房子是否可以租,但是房東可能要和家人進(jìn)行一系列的溝通,最后還可能派出另一個(gè)家庭成員來(lái)和客戶進(jìn)行交流,整個(gè)溝通過(guò)程非常復(fù)雜、溝通線路繁多。如果是寫(xiě)成程序的模式,不同成員之間需要留好接口方便成員之間互相進(jìn)行

    2024年02月14日
    瀏覽(23)
  • 設(shè)計(jì)模式-中介者模式

    設(shè)計(jì)模式-中介者模式

    本文將詳細(xì)介紹設(shè)計(jì)模式中的中介者模式,其中包括,中介者模式的優(yōu)點(diǎn)、缺點(diǎn)、各組成部分。 中介者模式(Mediator Pattern)是一種設(shè)計(jì)模式,它定義了一個(gè)中介者類,該類將多個(gè)對(duì)象之間的通信抽象化,使得這些對(duì)象可以通過(guò)中介者進(jìn)行通信,從而降低它們之間的直接耦合

    2024年02月09日
    瀏覽(21)
  • 設(shè)計(jì)模式——中介者模式

    中介者模式(Mediator Pattern)是一種行為型設(shè)計(jì)模式,它旨在減少多個(gè)對(duì)象之間的相互引用和耦合度。通過(guò)引入一個(gè)中介對(duì)象來(lái)封裝一系列交互行為,使得原本復(fù)雜的網(wǎng)狀關(guān)系結(jié)構(gòu)轉(zhuǎn)變?yōu)樾切谓Y(jié)構(gòu),所有對(duì)象與中介者通信而不是彼此直接通信。 抽象中介者(Mediator Interface):

    2024年01月18日
    瀏覽(31)
  • 設(shè)計(jì)模式篇---中介者模式

    設(shè)計(jì)模式篇---中介者模式

    中介者模式:用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。 就好比世界各個(gè)國(guó)家之間可能會(huì)產(chǎn)生沖突,但是當(dāng)產(chǎn)生沖突的時(shí)候需要聯(lián)合國(guó)來(lái)解決沖突。每個(gè)國(guó)家之間的關(guān)系,就好

    2024年01月22日
    瀏覽(28)
  • 設(shè)計(jì)模式之中介者模式

    設(shè)計(jì)模式之中介者模式

    詳細(xì)介紹 ????????中介者模式(Mediator Pattern)是一種行為設(shè)計(jì)模式, 它通過(guò)定義一個(gè)中介類來(lái)封裝多個(gè)對(duì)象之間的交互,使各對(duì)象不需要顯示地相互引用,從而降低耦合度,提高系統(tǒng)的可維護(hù)性和靈活性。中介者模式將原本一對(duì)多的網(wǎng)狀關(guān)系轉(zhuǎn)變?yōu)橐粚?duì)多的關(guān)系,即每個(gè)

    2024年04月29日
    瀏覽(47)
  • 設(shè)計(jì)模式(十七)中介者

    設(shè)計(jì)模式(十七)中介者

    義一個(gè)對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者模式使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以讓你相對(duì)獨(dú)立地改變它們之間的交互。中介者模式又稱為調(diào)停模式,它是一種對(duì)象說(shuō)行為型模式。 在中介者模式中,引入了用于協(xié)調(diào)其他對(duì)象/類之間的相互調(diào)用

    2024年02月04日
    瀏覽(21)
  • 大話設(shè)計(jì)模式之中介者模式

    大話設(shè)計(jì)模式之中介者模式

    中介者模式是一種行為型設(shè)計(jì)模式,它通過(guò)引入一個(gè)中介者對(duì)象來(lái)封裝一系列對(duì)象之間的交互,從而減少對(duì)象之間的直接通信,使得對(duì)象之間的耦合度降低,同時(shí)提高了系統(tǒng)的可維護(hù)性和靈活性。 在中介者模式中,對(duì)象之間的通信不再直接發(fā)生,而是通過(guò)中介者對(duì)象來(lái)進(jìn)行。

    2024年04月16日
    瀏覽(24)
  • 行為型設(shè)計(jì)模式——中介者模式

    行為型設(shè)計(jì)模式——中介者模式

    中介者模式主要是將關(guān)聯(lián)關(guān)系由一個(gè)中介者類統(tǒng)一管理維護(hù),一般來(lái)說(shuō),同事類之間的關(guān)系是比較復(fù)雜的,多個(gè)同事類之間互相關(guān)聯(lián)時(shí),他們之間的關(guān)系會(huì)呈現(xiàn)為復(fù)雜的網(wǎng)狀結(jié)構(gòu),這是一種過(guò)度耦合的架構(gòu),即不利于類的復(fù)用,也不穩(wěn)定。例如在下左圖中,有六個(gè)同事類對(duì)象

    2024年01月18日
    瀏覽(23)
  • 設(shè)計(jì)模式- 中介者模式(Mediator)

    設(shè)計(jì)模式- 中介者模式(Mediator)

    中介者模式(Mediator Pattern),是一種對(duì)象行為型模式。該模式的主要目的是定義一個(gè)中介對(duì)象來(lái)封裝一系列對(duì)象之間的交互,使原有對(duì)象之間的耦合變得松散,并且可以獨(dú)立地改變它們之間的交互。 抽象中介者(Mediator) :這是中介者模式的核心接口,它定義了同事對(duì)象注

    2024年04月26日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包