web中介者模式中的類怎么用

這篇文章主要介紹了web中介者模式中的類怎么用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇web中介者模式中的類怎么用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、正陽(yáng)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

效果

使用中介者模式可以:

有利于提煉可復(fù)用的共通功能。所有的同事類只需要和處于信息交換中心的中介者類進(jìn)行交互,而不需要知道其他控件的存在。這樣既減少了溝通渠道,又降低了同事類之間的耦合性。

業(yè)務(wù)邏輯容易理解。終結(jié)者類作為信息交換的中心,同時(shí)也是信息處理的中心。由于所有和業(yè)務(wù)邏輯相關(guān)的內(nèi)容都集中在一處,理解和維護(hù)都變得很容易。

由于中介者類吸收了全部業(yè)務(wù)邏輯,所以同事類可以將注意力完全集中在自身功能上,由此產(chǎn)生的一個(gè)效果就是同事類可以很容易地實(shí)現(xiàn)可復(fù)用。

代碼示例

示例代碼基本上參照模式類圖編寫(xiě),為了便于理解,類名略有變更。首先是抽象中介者類。

class Mediator(metaclass=abc.ABCMeta):    @abc.abstractmethod    def notify(self, colleague):        raiseNotImplementedError

這里使用類似觀察者模式的通知方式以獲得最大限度的靈活性。接下來(lái)是抽象同事類。

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

抽象同事類管理一個(gè)中介者類的對(duì)象,用于發(fā)起和對(duì)象類之間的通信。

class TextEntry(Colleague):    def __init__(self,mediator):        Colleague.__init__(self, mediator)        self.text= ""    def set_text(self, text):        self.text= text        print('TextEntry:', self.text)class ListBox(Colleague):    def __init__(self,mediator):        Colleague.__init__(self, mediator)        self.index= 0    defitem_selected(self):        self.index= self.index + 1        self.mediator.notify(self)    def get_selected(self):        returnself.index

示例代碼唯一的功能就是在ListBox當(dāng)前選項(xiàng)發(fā)生變化時(shí),將選項(xiàng)索引表示在TextEntry中,因此實(shí)現(xiàn)的方法也僅限于該功能必須的部分。

class ConcreteMediator(Mediator):    def __init__(self):        self.lb= ListBox(self)        self.te= TextEntry(self)    def notify(self, colleague):        if colleague== self.lb:            self.te.set_text(self.lb.get_selected())    def test(self):        self.lb.item_selected()
if __name__ == '__main__':    mediator = ConcreteMediator()    mediator.test()

main函數(shù)中首先構(gòu)建一個(gè)具象中介者類ConcreteMediator類的實(shí)例。在初始化處理中,ConcreteMediator以自身為參數(shù)構(gòu)建ListBox類和TextEntry類的對(duì)象。這一步完成后,所有的準(zhǔn)備工作就算就緒了。

接下來(lái)是通過(guò)中介者類ConcreteMedator的test調(diào)用ListBox的item_selected方法。在實(shí)際的開(kāi)發(fā)中這個(gè)調(diào)用應(yīng)該是發(fā)端于由于某個(gè)用戶操作。在ListBox的item_selected方法中,ListBox首先根據(jù)內(nèi)部邏輯決定自己的當(dāng)前活動(dòng)項(xiàng),然后調(diào)用抽象中介者類的通知接口notify報(bào)告自己的變化。

中介者類處于信息交換的中心,接收來(lái)自動(dòng)作控件的信息經(jīng)過(guò)處理后再將處理結(jié)果發(fā)送給必要的接收者。具體到示例代碼,Mediator類將只是簡(jiǎn)單地活動(dòng)項(xiàng)的索引設(shè)置到TextEntry上。

關(guān)于“web中介者模式中的類怎么用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“web中介者模式中的類怎么用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:web中介者模式中的類怎么用
網(wǎng)頁(yè)鏈接:http://bm7419.com/article48/iidhhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、響應(yīng)式網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司商城網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)