日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式:中介者模式(Mediator)

發(fā)布時間:2024/4/11 asp.net 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式:中介者模式(Mediator) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎支持筆者新作:《深入理解Kafka:核心設(shè)計與實踐原理》和《RabbitMQ實戰(zhàn)指南》,同時歡迎關(guān)注筆者的微信公眾號:朱小廝的博客。


歡迎跳轉(zhuǎn)到本文的原文鏈接:https://honeypps.com/design_pattern/mediator/

用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯示地相互引用,從而使其耦合松散,而且可以獨立地改變他們之間的交互。

中介者模式中的角色:

  • 抽象中介者(Mediator):定義了同事對象到中介者對象之間的接口。
  • 具體中介者(ConcreteMediator):定義抽象中介者的方法,它需要知道所有的具體同事類,同時需要從具體的同事類那里接收消息,并且向具體的同事類發(fā)送信息。
  • 抽象同事類(Colleague)
  • 具體同事類(ConcreteColleague):每個具體同事類都只需要知道自己的行為即可,但是它們都需要認識中介者。
  • 案例1:
    房屋租賃中介就是一個很好的中介模式,租客只知道自己和中介,房東也只知道自己和中介,但是中介必須知道租客和房東。(在我們的生活中處處充斥著“中介者”,比如租房、買房、出過留學、找工作、旅游等可能都需要哪些中介者的幫助。)
    1 抽象中介者

    public interface Mediator {void contact(String message, Person person); }

    2 抽象同事類

    public abstract class Person {protected String name;protected Mediator mediator;Person(String name, Mediator mediator){this.name = name;this.mediator = mediator;} }

    3 具體同事類
    房東:

    public class HouseOwner extends Person {HouseOwner(String name, Mediator mediator){super(name, mediator);}public void contact(String message){mediator.contact(message, this);}public void getMessage(String message){System.out.println("HouseOwner : "+name+", Get Message: "+message);} }

    租客:

    public class Tenant extends Person {Tenant(String name, Mediator mediator){super(name, mediator);}public void contact(String message){mediator.contact(message, this);}public void getMessage(String message){System.out.println("Tenant : "+name+", Get Message: "+message);} }

    4 中介

    public class MediatorStructure implements Mediator {private HouseOwner houseOwner;private Tenant tenant;public HouseOwner getHouseOwner(){return houseOwner;}public void setHouseOwner(HouseOwner houseOwner){this.houseOwner = houseOwner;}public Tenant getTenant(){return tenant;}public void setTenant(Tenant tenant){this.tenant = tenant;}@Overridepublic void contact(String message, Person person){if(person == houseOwner){tenant.getMessage(message);}else{houseOwner.getMessage(message);}} }

    5 測試代碼

    MediatorStructure mediator = new MediatorStructure();HouseOwner houseOwner = new HouseOwner("qq",mediator);Tenant tenant = new Tenant("jj",mediator);mediator.setHouseOwner(houseOwner);mediator.setTenant(tenant);tenant.contact("I wanna a house");houseOwner.contact("I have~");

    運行結(jié)果:

    HouseOwner : qq, Get Message: I wanna a house Tenant : jj, Get Message: I have~

    優(yōu)缺點
    優(yōu)點

  • 適當?shù)氖褂弥薪檎吣J娇梢员苊馔骂愔g的過渡耦合,使得各同事類之間可以相對獨立地使用。
  • 減少子類的生成。
  • 可以減少各同事類的設(shè)計與實現(xiàn)。
  • 缺點

  • 由于中介者對象封裝了系統(tǒng)中的對象之間的相互關(guān)系,導(dǎo)致其變得非常復(fù)雜,使得系統(tǒng)維護比較困難。中介者需要知道每個對象和他們之間的交互細節(jié),如果它出問題,將會導(dǎo)致整個系統(tǒng)都會出現(xiàn)問題。所以它比較容易應(yīng)用也很容易誤用。故當系統(tǒng)中出現(xiàn)了“多對多”交互復(fù)雜的關(guān)系群時,千萬別記著使用中介者模式,你首先需要做的就是反思你的系統(tǒng)在設(shè)計上是不是合理。再者,在實際工作中,中介者模式也并不多見。

  • 適用場景

  • 系統(tǒng)中對象之間存在比較復(fù)雜的引用關(guān)系,導(dǎo)致它們之間的依賴關(guān)系結(jié)構(gòu)混亂而且難以復(fù)用該對象。
  • 想通過一個中間類來封裝多個類中的行為,而又不想生成太多的子類。
  • JDK中的中介者模式:
    java.util.Timer
    java.util.concurrent.Executor#execute()
    java.util.concurrent.ExecutorService#submit()
    java.lang.reflect.Method#invoke()


    參考資料

  • 23種設(shè)計模式
  • 細數(shù)JDK里的設(shè)計模式
  • 設(shè)計模式讀書筆記—–中介者模式
  • 歡迎跳轉(zhuǎn)到本文的原文鏈接:https://honeypps.com/design_pattern/mediator/


    歡迎支持筆者新作:《深入理解Kafka:核心設(shè)計與實踐原理》和《RabbitMQ實戰(zhàn)指南》,同時歡迎關(guān)注筆者的微信公眾號:朱小廝的博客。


    總結(jié)

    以上是生活随笔為你收集整理的设计模式:中介者模式(Mediator)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久国产福利 | 欧美激情专区 | 亚洲av成人精品一区二区三区在线播放 | 99自拍视频 | 欧美亚洲综合视频 | 亚洲一级视频在线观看 | 制服.丝袜.亚洲.中文.综合懂色 | 草逼免费视频 | 伊人激情综合网 | 国产乱妇无码大片在线观看 | 久久久无码18禁高潮喷水 | 黑人操白妞 | 色综合91 | 992tv在线成人免费观看 | 日本一二三区在线 | 国产精品我不卡 | 男人透女人免费视频 | 99re6在线 | 中文字幕日韩人妻在线视频 | 黄av在线播放| 日韩激情床戏 | 黄色大片久久 | 91免费国产在线观看 | 四虎在线影视 | 精品色哟哟 | 午夜精品久久久久久99热 | av少妇 | 久热这里只有 | 一区二区三区免费观看 | 国产激情一区二区三区在线观看 | 黄色福利在线观看 | 免费一级片网址 | 欧美精品做受xxx性少妇 | 超碰最新网址 | 蜜桃免费在线视频 | 欧美成人午夜精品免费 | 福利在线播放 | 最新毛片网 | 亚洲剧情av | 国产精品一区二区视频 | av免费播放网站 | 色婷婷久久综合中文久久蜜桃av | 国产视频xxxx | 亚洲精品免费观看 | 日韩国产精品视频 | 秋霞av网| 波多野吉衣av | 91精品人妻一区二区三区 | 亚洲午夜伦理 | 韩国bj大尺度vip福利网站 | 九色porny丨精品自拍视频 | 美女免费黄视频 | 九九这里只有精品视频 | 国产污视频 | 欧美成人手机在线视频 | 欧美激情999 | 污污内射在线观看一区二区少妇 | 日韩中文字幕影院 | 岛国毛片在线观看 | 成人污污视频在线观看 | 在线看国产视频 | 日本伦理一区二区三区 | 一区二区三区四区视频在线观看 | 国产精品传媒一区二区 | 久久a级片| 久久久久久久久97 | 网站免费黄色 | av色图在线 | 99在线视频观看 | 欧美性猛交xxxx乱大交蜜桃 | 国产精品无码一区二区三区 | 成人精品视频在线播放 | 97色伦影院 | 免费成人美女在线观看 | 久草福利在线视频 | 欧美在线激情视频 | 一级做a爰片毛片 | www.奇米.com | 又爽又黄又无遮挡 | 亚洲国产精品视频 | 成人性生交大免费看 | 1024久久| 中字幕视频在线永久在线观看免费 | 美女免费网站 | 在线播放中文字幕 | 插插插操操操 | 岛国av噜噜噜久久久狠狠av | 亚洲久久视频 | 黄色免费视屏 | 亚洲欧美一区二区在线观看 | 伊人色综合网 | 日韩成人动漫在线观看 | 欧美激情一区二区三级高清视频 | 制服丝袜一区 | 日产欧产va高清 | 午夜剧场黄色 | 91人人视频 | 麻豆一区二区在线 | 国产美女久久久久久 |