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

經(jīng)典的設(shè)計(jì)模式17——中介者模式

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


中介者模式

定義: 用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變他們之間的交互。
結(jié)構(gòu):
抽象中介者角色:是中介者的接口,提供了同事對(duì)象注冊(cè)與轉(zhuǎn)發(fā)同事對(duì)象信息的抽象方法。
具體中介者角色:實(shí)現(xiàn)中介者接口,定義一個(gè)list來管理同事對(duì)象,協(xié)調(diào)各個(gè)同事角色之間的交互關(guān)系,因此它依賴于同事角色。
抽象同事角色:定義同事類的接口,保存中介者對(duì)象,提供同事對(duì)象交互的抽象方法,實(shí)現(xiàn)所有相互影響的同事類的公共功能。
具體同事類:是抽象同事類的實(shí)現(xiàn)者,當(dāng)需要與其他同事對(duì)象交互時(shí),由中介者對(duì)象負(fù)責(zé)后續(xù)的交互。
優(yōu)點(diǎn):
1、松散耦合
中介者模式通過把多個(gè)同時(shí)對(duì)象之間的交互封裝到中介者對(duì)象里邊,從而使得同事對(duì)象之間松散耦合,基本上上可以做到互補(bǔ)依賴。這樣,同事對(duì)象就可以獨(dú)立的變化和復(fù)用,而不再像以前那樣牽一處而動(dòng)全身。
2、集中控制交互
多個(gè)同事對(duì)象的交互,被封裝在中介者對(duì)象里面集中管理,使得這些交互行為發(fā)生變化的時(shí)候,只需要修改中介者對(duì)象就可以了,如果是已經(jīng)做好的系統(tǒng),那么擴(kuò)展中介者對(duì)象,而各個(gè)同事類不需要做修改。
3、一對(duì)多關(guān)聯(lián)變?yōu)橐粚?duì)一的關(guān)聯(lián)
沒有使用中介者模式的時(shí)候,同事之間的關(guān)系通常是一對(duì)多的,引入中介者模式以后,中介者對(duì)象和同事對(duì)象的關(guān)系通常變成雙向的一對(duì)一,這會(huì)讓對(duì)象的關(guān)系更容易理解和實(shí)現(xiàn)。
缺點(diǎn):
當(dāng)同事類太多,中介者的職責(zé)將很大,它會(huì)變得復(fù)雜而龐大,以至于系統(tǒng)難以維護(hù)。
使用場景:
系統(tǒng)對(duì)象之間存在復(fù)雜的引用關(guān)系,系統(tǒng)結(jié)構(gòu)混亂且難以理解。
當(dāng)想創(chuàng)建一個(gè)運(yùn)行于多個(gè)類之間的對(duì)象,又不想生成新的子類時(shí)。文章來源地址http://www.zghlxwxcb.cn/news/detail-485118.html

package 中介者模式;

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

}

package 中介者模式;

public class ConcreteMediator extends Mediator {
	private ConcreteColleague1 colleague1;
	private ConcreteColleague2 colleague2;

	@Override
	public void send(String message, Colleague colleague) {
		if (colleague == colleague1) {
			colleague1.notifyy(message);
		} else {
			colleague2.notifyy(message);
		}
	}

	public void setColleague1(ConcreteColleague1 colleague1) {
		this.colleague1 = colleague1;
	}

	public void setColleague2(ConcreteColleague2 colleague2) {
		this.colleague2 = colleague2;
	}

}

package 中介者模式;

public abstract class Colleague {
	protected Mediator mediator;

	public Colleague(Mediator mediator) {
		this.mediator = mediator;
	}

}

package 中介者模式;

public class ConcreteColleague1 extends Colleague {

	public ConcreteColleague1(Mediator mediator) {
		super(mediator);
	}

	public void send(String message) {
		mediator.send(message, this);
	}

	public void notifyy(String message) {
		System.out.println("同事1得到消息:" + message);
	}

}

package 中介者模式;

public class ConcreteColleague2 extends Colleague {

	public ConcreteColleague2(Mediator mediator) {
		super(mediator);
	}

	public void send(String message) {
		mediator.send(message, this);
	}

	public void notifyy(String message) {
		System.out.println("同事2得到消息:" + message);
	}

}

package 中介者模式;

public class Client {

	public static void main(String[] args) {
		ConcreteMediator concreteMediator = new ConcreteMediator();

		ConcreteColleague1 c1 = new ConcreteColleague1(concreteMediator);
		ConcreteColleague2 c2 = new ConcreteColleague2(concreteMediator);

		concreteMediator.setColleague1(c1);
		concreteMediator.setColleague2(c2);

		c1.send("吃飯了么");
		c2.send("沒有呢,正準(zhǔn)備去");

	}

}

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

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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)文章

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

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

    詳細(xì)介紹 ????????中介者模式(Mediator Pattern)是一種行為設(shè)計(jì)模式, 它通過定義一個(gè)中介類來封裝多個(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ì)象來封裝一系列的對(duì)象交互。中介者模式使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以讓你相對(duì)獨(dú)立地改變它們之間的交互。中介者模式又稱為調(diào)停模式,它是一種對(duì)象說行為型模式。 在中介者模式中,引入了用于協(xié)調(diào)其他對(duì)象/類之間的相互調(diào)用

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

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

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

    2024年04月16日
    瀏覽(24)
  • Java設(shè)計(jì)模式-中介者模式

    中介者模式,就是用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯式地互相引用,從而使其耦合松散,而且可以獨(dú)立的改變它們之間的交互。 其實(shí)中介者模式很簡單的,就像它的名字一樣,中介,調(diào)用某個(gè)類的某些方法的時(shí)候,我們不直接去跟那個(gè)類的實(shí)

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

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

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

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

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

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

    2024年04月26日
    瀏覽(26)
  • C++ 設(shè)計(jì)模式之 中介者模式

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

    【聲明】本題目來源于卡碼網(wǎng)(題目頁面 (kamacoder.com)) 【提示:如果不想看文字介紹,可以直接跳轉(zhuǎn)到C++編碼部分】 ? ? ? ? -- 什么是中介者模式? (第16種模式) ??????? ?中介者模式 (Mediator Pattern)也被稱為 調(diào)停者模式 ,是?種 ?為型設(shè)計(jì)模式 ,它通過?個(gè)中介

    2024年01月19日
    瀏覽(21)
  • 《設(shè)計(jì)模式的藝術(shù)》筆記 - 中介者模式

    ? ? ? ? 中介者模式用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。中介者模式又稱為調(diào)停者模式,它是一種對(duì)象行為模式。 myclass.h myclass.cpp main.cpp ? ? ? ? 1.?中介者模式簡化了

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

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

    中介者模式(Mediator Pattern):用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互,中介者使各對(duì)象不需要顯式地相互引用,減少對(duì)象間混亂的依賴關(guān)系,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。對(duì)象行為型模式。 包含以下角色: Mediator: 抽象中介者 ConcreteMediator: 具體中

    2024年01月16日
    瀏覽(18)
  • 設(shè)計(jì)模式-行為型模式之中介者模式

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

    在用戶與用戶直接聊天的設(shè)計(jì)方案中,用戶對(duì)象之間存在很強(qiáng)的 關(guān)聯(lián)性 ,將導(dǎo)致系統(tǒng)出現(xiàn)如下問題: 對(duì)象之間存在大量的相互關(guān)聯(lián)和調(diào)用,若有一個(gè)對(duì)象發(fā)生變化,則需要跟蹤和該對(duì)象關(guān)聯(lián)的其他所有對(duì)象,并進(jìn)行適當(dāng)處理。 由于一個(gè)對(duì)象和其他對(duì)象具有很強(qiáng)的關(guān)聯(lián),若沒

    2023年04月23日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包