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

軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式

這篇具有很好參考價值的文章主要介紹了軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

三、中介者模式(迪米特法則)

概念

模式動機(jī):
為了減少對象兩之間復(fù)雜的引用關(guān)系,使之成為一個松耦合的系統(tǒng),需要適用中介者模式

定義:
用一個中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式地相互引用,從而使耦合松散,而且可以獨(dú)立地該變它們之間的交互

中介者模式又稱為調(diào)停者模式,它是一種對象行為型模式
中介者模式的要點(diǎn)是將所有對象之間的交互細(xì)節(jié)抽象到一個獨(dú)立的類中,這個類叫做中介者類Mediator
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式

類圖

軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式

代碼

中介者模式(Mediator Pattern)是一種軟件設(shè)計(jì)模式,它通過將對象之間的交互行為封裝在一個中介者對象中,來實(shí)現(xiàn)對象之間的解耦。中介者模式促進(jìn)了對象之間的松耦合,使其更易于維護(hù)和擴(kuò)展。

下面是一個簡單的中介者模式的代碼示例,以說明其工作原理:

class Mediator:
    def __init__(self):
        self.component1 = Component1(self)
        self.component2 = Component2(self)

    def notify(self, sender, event):
        if event == 'event1':
            self.component2.do_something()
        elif event == 'event2':
            self.component1.do_something()

class Component1:
    def __init__(self, mediator):
        self.mediator = mediator

    def do_something(self):
        # 處理自己的邏輯
        print("Component 1 does something.")
        # 觸發(fā)事件通知中介者
        self.mediator.notify(self, 'event1')

class Component2:
    def __init__(self, mediator):
        self.mediator = mediator

    def do_something(self):
        # 處理自己的邏輯
        print("Component 2 does something.")
        # 觸發(fā)事件通知中介者
        self.mediator.notify(self, 'event2')

# 創(chuàng)建中介者對象
mediator = Mediator()

# 執(zhí)行操作
component1 = Component1(mediator)
component2 = Component2(mediator)
component1.do_something()

在上述代碼示例中,我們有一個中介者類 Mediator 和兩個組件類 Component1Component2。中介者類擁有對這兩個組件的引用,并提供了一個 notify 方法用于接收事件通知并根據(jù)不同的事件執(zhí)行相應(yīng)的操作。

當(dāng)組件 Component1 執(zhí)行 do_something 方法時,它會觸發(fā)事件通知中介者,中介者根據(jù)事件類型調(diào)用 Component2 的相應(yīng)方法。同樣地,當(dāng)組件 Component2 執(zhí)行 do_something 方法時,它也會觸發(fā)事件通知中介者,中介者根據(jù)事件類型調(diào)用 Component1 的相應(yīng)方法。

這樣,組件之間的交互行為通過中介者對象進(jìn)行了封裝,組件之間的耦合度降低,它們只需要與中介者進(jìn)行通信,而不需要直接相互交互。這種解耦有助于增強(qiáng)代碼的可維護(hù)性和擴(kuò)展性。

中介者模式在現(xiàn)實(shí)世界中有許多應(yīng)用,比如聊天室、航空交通管制系統(tǒng)等,它們都使用中介者來協(xié)調(diào)不同對象之間的交互行為,從而實(shí)現(xiàn)更好的系統(tǒng)設(shè)計(jì)。

中介者承擔(dān)兩方面的職責(zé)

中轉(zhuǎn)作用(結(jié)構(gòu)性):

通過中介者提供的中轉(zhuǎn)作用各個同事對象就不再需要顯式引用其他同事,當(dāng)需要和其他同事進(jìn)行通信時,通過中介者即可。
中轉(zhuǎn)作用屬于中介者在結(jié)構(gòu)上的支持。

協(xié)調(diào)作用(行為性):

中介者可以更進(jìn)一步的對同事之間的關(guān)系進(jìn)行封裝,同事可以一致地和中介者進(jìn)行交互,而不需要指明中介者需要具體怎么做,中介者根據(jù)封裝在自身內(nèi)部的協(xié)調(diào)邏輯,對同事的請求進(jìn)行進(jìn)一步處理,將同事成員之間的關(guān)系行為進(jìn)行分離和封裝。
協(xié)調(diào)作用屬于中介者在行為上的支持。

實(shí)例一:旅游項(xiàng)目信息共享軟件的設(shè)計(jì)

軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式

實(shí)例二:海島微型飛機(jī)場

軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式

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

優(yōu)點(diǎn):
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式

缺點(diǎn):

在具體中介者類中包含了同事之間的交互細(xì)節(jié)可能會導(dǎo)致具體中介者類非常復(fù)雜,使得系統(tǒng)難以維護(hù)

適用場合

  1. 系統(tǒng)中對象之間存在復(fù)雜的引用關(guān)系,產(chǎn)生的相互依賴關(guān)系結(jié)構(gòu)混亂且難以理解。
  2. 一個對象由于引用了其他很多對象并且直接和這些對象通信,導(dǎo)致難以復(fù)用該對象。
  3. 想通過一個中間類來封裝多個類中的行為,而又不想生成太多的子類??梢酝ㄟ^引入中介者類來實(shí)現(xiàn),在中介者中定義對象交互的公共行為,如果需要改變行為則可以增加新的中介者類

中介者模式與迪米特法則

在中介者模式中,通過創(chuàng)造出一個中介者對象,將系統(tǒng)中有關(guān)的對象所引用的其他對象數(shù)目減少到最少,使得一個對象與其同事之間的相互作用被這個對象與中介者對象之間的相互作用所取代。因此,中介者模式就是迪米特法則的一個典型應(yīng)用。

課程作業(yè)

軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式

軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式
軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式,軟件設(shè)計(jì)模式與體系結(jié)構(gòu),設(shè)計(jì)模式,中介者模式文章來源地址http://www.zghlxwxcb.cn/news/detail-533105.html

到了這里,關(guān)于軟件設(shè)計(jì)模式與體系結(jié)構(gòu)-設(shè)計(jì)模式-行為型軟件設(shè)計(jì)模式-中介者模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 中級軟件設(shè)計(jì)師備考---計(jì)算機(jī)組成與體系結(jié)構(gòu)3

    中級軟件設(shè)計(jì)師備考---計(jì)算機(jī)組成與體系結(jié)構(gòu)3

    計(jì)算題 概念題 計(jì)算可靠度 碼距:是指兩個碼字之間的不同位數(shù)。例如,1010和1111之間的碼距是2,因?yàn)樗鼈冊诘诙缓偷谌簧喜煌?。在信息傳輸中,碼距越大,就越容易檢測和糾正錯誤。 在一個碼組內(nèi)為了檢測e個誤碼,要求最小碼距d應(yīng)滿足:d=e+1 在一個碼組內(nèi)為了糾正

    2023年04月15日
    瀏覽(16)
  • 【軟件設(shè)計(jì)師暴擊考點(diǎn)】計(jì)算機(jī)組成原理與體系結(jié)構(gòu)高頻考點(diǎn)暴擊系列【一】

    【軟件設(shè)計(jì)師暴擊考點(diǎn)】計(jì)算機(jī)組成原理與體系結(jié)構(gòu)高頻考點(diǎn)暴擊系列【一】

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : 軟件設(shè)計(jì)師考點(diǎn)暴擊 下午題 ?【軟件設(shè)計(jì)師暴擊考點(diǎn)】下午題高頻考點(diǎn)暴擊系列 上午題目錄 進(jìn)入專欄瀏覽:

    2024年02月10日
    瀏覽(24)
  • 軟件工程(十五) 行為型設(shè)計(jì)模式(一)

    軟件工程(十五) 行為型設(shè)計(jì)模式(一)

    簡要說明 通過多個對象處理的請求,減少請求的發(fā)送者與接收者之間的耦合。將接受對象 鏈接 起來,在鏈中傳遞請求,直到有一個對象處理這個請求。 速記 傳遞職責(zé) 類圖如下 由類圖可以比較容易的看出來,其實(shí)就是自己關(guān)聯(lián)自己,形成了一個鏈,并且自己有不同的

    2024年02月11日
    瀏覽(25)
  • 軟件工程(十八) 行為型設(shè)計(jì)模式(四)

    軟件工程(十八) 行為型設(shè)計(jì)模式(四)

    簡要說明 允許一個對象在其內(nèi)部改變時改變它的行為 速記 狀態(tài)變成類 類圖如下 狀態(tài)模式主要用來解決對象在多種狀態(tài)轉(zhuǎn)換時,需要對外輸出不同的行為的問題。比如訂單從待付款到待收貨的咋黃臺發(fā)生變化,執(zhí)行的邏輯是不一樣的。 所以我們將狀態(tài)抽象為一個接口

    2024年02月11日
    瀏覽(20)
  • 軟件工程(十七) 行為型設(shè)計(jì)模式(三)

    軟件工程(十七) 行為型設(shè)計(jì)模式(三)

    簡要說明 定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并自動更新 速記 聯(lián)動,廣播消息 類圖如下 基于上面的類圖,我們來實(shí)現(xiàn)一個監(jiān)聽器。類圖中的Subject對應(yīng)我們的被觀察對象接口(IObservable),Observer對應(yīng)我們

    2024年02月11日
    瀏覽(17)
  • C++面試:單例模式、工廠模式等簡單的設(shè)計(jì)模式 & 創(chuàng)建型、結(jié)構(gòu)型、行為型設(shè)計(jì)模式的應(yīng)用技巧

    ????????理解和能夠?qū)崿F(xiàn)基本的設(shè)計(jì)模式是非常重要的。這里,我們將探討兩種常見的設(shè)計(jì)模式:單例模式和工廠模式,并提供一些面試準(zhǔn)備的建議。 目錄 單例模式 (Singleton Pattern) 工廠模式 (Factory Pattern) 面試準(zhǔn)備? 1. 理解設(shè)計(jì)模式的基本概念 2. 掌握實(shí)現(xiàn)細(xì)節(jié) 3. 討論優(yōu)缺

    2024年02月01日
    瀏覽(20)
  • 基于體系結(jié)構(gòu)架構(gòu)設(shè)計(jì)-架構(gòu)真題(十五)

    基于體系結(jié)構(gòu)開發(fā)設(shè)計(jì)(Architecture-Base Software Design)ABSD,是指構(gòu)成體系結(jié)構(gòu)的()組合驅(qū)動,ABSC方法是一個自項(xiàng)向下、遞歸細(xì)化的方法,軟件系統(tǒng)的體系結(jié)構(gòu)通過該方法細(xì)化,直到能產(chǎn)生()。 產(chǎn)品、功能需求和設(shè)計(jì)活動 商業(yè)、質(zhì)量和功能需求 商業(yè)、產(chǎn)品和功能需求 商業(yè)

    2024年02月10日
    瀏覽(44)
  • 軟件工程(十三) 設(shè)計(jì)模式之結(jié)構(gòu)型設(shè)計(jì)模式(一)

    軟件工程(十三) 設(shè)計(jì)模式之結(jié)構(gòu)型設(shè)計(jì)模式(一)

    前面我們記錄了創(chuàng)建型設(shè)計(jì)模式,知道了通過各種模式去創(chuàng)建和管理我們的對象。但是除了對象的創(chuàng)建,我們還有一些結(jié)構(gòu)型的模式。 簡要說明 將一個類的接口轉(zhuǎn)換為用戶希望得到的另一個接口。它使原本不相同的接口得以協(xié)同工作。 速記 轉(zhuǎn)換接口 類圖如下 角色說

    2024年02月11日
    瀏覽(30)
  • 軟件設(shè)計(jì)實(shí)驗(yàn)三 結(jié)構(gòu)型設(shè)計(jì)模式實(shí)驗(yàn)

    軟件設(shè)計(jì)實(shí)驗(yàn)三 結(jié)構(gòu)型設(shè)計(jì)模式實(shí)驗(yàn)

    1.結(jié)合實(shí)例,熟練繪制常見的結(jié)構(gòu)型設(shè)計(jì)模式結(jié)構(gòu)圖。 2.結(jié)合實(shí)例,熟練使用任意一種面向?qū)ο缶幊陶Z言實(shí)現(xiàn)常見的結(jié)構(gòu)型設(shè)計(jì)模式。 3.通過本實(shí)驗(yàn),理解每一種結(jié)構(gòu)型設(shè)計(jì)模式的模式動機(jī),掌握模式結(jié)構(gòu),學(xué)習(xí)如何使用代碼實(shí)現(xiàn)這些設(shè)計(jì)模式。 1.現(xiàn)有一個接口DataOperation定義

    2024年02月03日
    瀏覽(36)
  • 軟件工程(十四) 設(shè)計(jì)模式之結(jié)構(gòu)型模式(二)

    軟件工程(十四) 設(shè)計(jì)模式之結(jié)構(gòu)型模式(二)

    簡要說明 將對象組合成樹形結(jié)構(gòu)以表示“整體-部分”的層次結(jié)構(gòu),使得用戶對單個對象和組合對象的使用具有一致性。 速記 樹形目錄結(jié)構(gòu) 類圖如下 由類圖其實(shí)可以看出,組合模式就是將具有父子關(guān)系的結(jié)構(gòu),組裝形成一棵樹,并且根據(jù)規(guī)范,樹干節(jié)點(diǎn)和葉子節(jié)點(diǎn)均

    2024年02月11日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包