色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

javascript設(shè)計(jì)模式 ? 中介者模式原理與用法實(shí)例分析

瀏覽:4日期:2023-11-02 18:31:37

本文實(shí)例講述了javascript設(shè)計(jì)模式 ? 中介者模式原理與用法。分享給大家供大家參考,具體如下:

介紹:在前端開發(fā)的過程中,組件與組件之間的通訊特別常見,一個(gè)組件的change需要引起數(shù)個(gè)組件的change,這就需要組件與組件之間存在復(fù)雜的多對(duì)多關(guān)系鏈。如何來減輕維護(hù)這些關(guān)系的復(fù)雜度,讓組件和組件之間實(shí)現(xiàn)低耦合?這就是我們即將介紹的中介者模式。

定義:用一個(gè)中介對(duì)象(中介者)來封裝一系列的對(duì)象交互,中介者使個(gè)對(duì)象不需要顯式的相互引用,從而使其耦合松散,而且可以獨(dú)立的改變他們之間的交互。中介者模式又稱為調(diào)停者模式,它是一種對(duì)象行為型模式。

場景:我們來實(shí)現(xiàn)一個(gè)打招呼的小demo,由牛牛發(fā)送一條消息給中介者,中介者收到后通知risker發(fā)消息給牛牛

示例:

var Mediator = { Niuniu: null, Risker: null, showMessage: function(component, message){ console.log(component.getName() + ’說:’ + message); if(component.getName() === ’Niuniu’){ this.Risker.showMessage(’hello Niuniu’); } }} var Niuniu = function(){ this.name = ’Niuniu’; this.getName = function(){ return this.name; } this.showMessage = function(message){ Mediator.showMessage(this, message); }} var Risker = function(){ this.name = ’Risker’; this.getName = function(){ return this.name; } this.showMessage = function(message){ Mediator.showMessage(this, message); }} var niuniu = new Niuniu();var risker = new Risker();Mediator.niuniu = niuniu;Mediator.Risker = risker; niuniu.showMessage(’hello Risker’); // Niuniu說:hello Risker// Risker說:hello Niuniu

這個(gè)例子里面Niuniu和Risker稱為同事對(duì)象,同事對(duì)象之間存在關(guān)聯(lián)關(guān)系,既會(huì)被別的對(duì)象影響,也會(huì)影響別的對(duì)象。

Mediator稱為中介者,其實(shí)中介者模式做的只是把之前網(wǎng)狀的關(guān)系結(jié)構(gòu)轉(zhuǎn)化成了以Mediator為中心的星型結(jié)構(gòu)。關(guān)聯(lián)關(guān)系并沒有少,只是在Mediator中集中處理了。

中介者模式總結(jié):

優(yōu)點(diǎn):* 中介者模式簡化了同事對(duì)象之間的交互,它用中介者和同事的一對(duì)多交互代替了原來同事之間的多對(duì)多交互。* 將各同事對(duì)象解耦,中介者有利于各同事對(duì)象之間的松耦合

缺點(diǎn):* 在中介者中包含了大量同事之間的交互細(xì)節(jié),會(huì)導(dǎo)致中介者非常復(fù)雜難以維護(hù)。

適用場景:* 系統(tǒng)中對(duì)象之間存在復(fù)雜的引用關(guān)系,系統(tǒng)結(jié)構(gòu)混亂難以理解* 一個(gè)對(duì)象由于引用了其他很多對(duì)象并且直接和這些對(duì)象通信,導(dǎo)致難以復(fù)用該對(duì)象

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产精品亚洲精品爽爽 | 精品国产一二三区在线影院 | 一区二区高清在线 | 亚洲自拍成人 | 亚洲精品久久久久网站 | 欧美日韩一区二区三 | 免费精品一区二区三区在线观看 | 国产高清一级视频在线观看 | 国产一区二区三区日韩 | 涩涩国产精品福利在线观看 | 午夜一级片 | 国产伦子伦视频免费 | 久久九九亚洲精品 | 欧美久色| 国产制服 国产制服一区二区 | 亚洲日本中文字幕在线 | 欧美有码在线观看 | 九九视频在线观看视频6 | 日本久草视频 | 久久免费视频7 | 欧美xxxxxxxx| 国产毛片网站 | 欧美日韩精品一区二区三区视频播放 | 久久欧美精品欧美九久欧美 | 亚洲天堂免费观看 | 性欧美精品久久久久久久 | 免费又黄又爽又猛大片午夜 | 国产亚洲一欧美一区二区三区 | 手机亚洲第一页 | 免费一级毛片在线播放 | 91欧美精品综合在线观看 | 美女做爰视频在线观看免费 | 玖玖精品在线视频 | 性色xxx| 国产免费高清在线精品一区 | 欧美一区二区三区在线 | 久揄揄鲁一二三四区高清在线 | 新版天堂中文资源8在线 | 亚洲精品91| 男人天堂网在线视频 | 一级毛片在播放免费 |