日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript設計模式 ? 訪問者模式原理與用法實例分析

瀏覽:32日期:2023-11-01 17:31:23

本文實例講述了javascript設計模式 ? 訪問者模式原理與用法。分享給大家供大家參考,具體如下:

介紹:訪問者模式比較復雜,它包含訪問者和被訪問元素兩個主要組成部分,這些被訪問的元素通常具有不同的類型,且不同的訪問者可以對他們進行不同的訪問操作。訪問者模式的主要目的是將數據結構與數據操作相分離。

定義:提供一個作用于某對象結構中的個元素的操作表示,它使得可以再不改變各元素的類的前提下定義作用于這些元素的新操作。訪問者模式是一種對象行為型模式

場景:使用PC結構demo來解釋下訪問者模式

示例:

var Keyboard = function(){ this.accept = function(computerPartVisitor){ computerPartVisitor.visit(this); }} var Monitor = function(){ this.accept = function(computerPartVisitor){ computerPartVisitor.visit(this); }} var Mouse = function(){ this.accept = function(computerPartVisitor){ computerPartVisitor.visit(this); }} var Computer = function(){ var parts = [new Keyboard(), new Monitor(), new Mouse()]; this.accept = function(computerPartVisitor){ computerPartVisitor.visit(this); _acceptAll(computerPartVisitor); } var _acceptAll = function(computerPartVisitor){ parts.map(function(item){ item.accept(computerPartVisitor) }); }} var ComputerPartDisplayVisitor = function(){ this.visit = function(item){ if(item.constructor == Keyboard){ console.log('Displaying Keyboard.'); }else if(item.constructor == Monitor){ console.log('Displaying Monitor.'); }else if(item.constructor == Mouse){ console.log('Displaying Mouse.'); }else if(item.constructor == Computer){ console.log('Displaying Computer.'); }else{ console.log('Error'); } }} var computer = new Computer();computer.accept(new ComputerPartDisplayVisitor());// Displaying Computer.// Displaying Keyboard.// Displaying Monitor.// Displaying Mouse.

這個模式比較復雜,我們先介紹下組成:

ComputerPartDisplayVisitor稱為訪問者,它為對象結構中的每一個具體元素例如Keyboard,Mouse等聲明一個訪問操作。當訪問Keyboard時就會輸出Displaying Keyboard。 Keyboard,Monitor,Mouse稱為元素,他們包含一個accept方法,用來觸發傳遞進來的訪問者 Computer稱為對象結構,它是一個元素的集合。parts數組用于存放元素對象,以供不同訪問者訪問。_acceptAll方法用來遍歷內部元素。 訪問者通過accept訪問元素內部,元素內部也可以通過參數調用訪問者的visit方法。這種調用機制稱為雙重分派。

訪問者模式總結:

優點:* 增加新的訪問操作便捷,只需要加一個新的訪問者類。* 將有關原色對象的訪問行為集合到一個訪問者對象中,類的職責更清晰。* 讓用戶在不修改現有元素層次結構的情況下,定義作用于該層次結構的操作。

缺點:* 增加新的元素類很困難,在訪問者模式下,每增加一個新的元素,對應要增加訪問者中的操作。* 破壞封裝。訪問者模式要求訪問者對象訪問并調用每一個元素對象的操作,這意味著元素必須暴露一些內部操作和內部狀態。

適用場景:* 一個對象結構包含多個類型的對象,希望對這些對象實施一些依賴其具體類型的操作。* 需要對一個對象結構中的對象進行橫多不同的并且不相關的操作,而且需要避免讓這些操作污染這些對象的類。* 對象結構中對象對應的類很少改變,但經常需要再次對象結構上定義新的操作。

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

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品白丝一区二区三区| 日韩专区欧美专区| 欧美三级第一页| 国产精品第一国产精品| 国产一区二区三区不卡视频网站| 亚洲深夜视频| 伊人久久大香线蕉av超碰演员| 国产日韩专区| 亚州av一区| 久久国产精品久久w女人spa| 国产综合欧美| 亚洲福利专区| 午夜日韩福利| 亚洲aa在线| 国产精品15p| 老色鬼精品视频在线观看播放| 成人亚洲一区二区| 婷婷精品视频| 日韩国产一二三区| 岛国av在线网站| 免费日韩精品中文字幕视频在线| 日韩区欧美区| 国产精品亚洲片在线播放| 美女av在线免费看| 亚洲三级av| 成人亚洲一区二区| 久久亚洲欧美| 成人污污视频| 免费看欧美美女黄的网站| 久久精品一区二区三区中文字幕| 久久精品在线| 日韩激情视频网站| 热三久草你在线| 日本不卡一二三区黄网| 在线一区av| 88久久精品| 亚洲免费高清| 黄色欧美在线| 蜜桃av一区二区在线观看| 国产精品不卡| 91在线成人| 黄色不卡一区| 九九久久国产| 在线看片日韩| 亚洲成av人片一区二区密柚| 日韩av电影一区| 不卡在线一区| 久久99精品久久久野外观看| 久热re这里精品视频在线6| 精品在线网站观看| 中文一区一区三区免费在线观 | 日韩手机在线| 久久久久国产一区二区| 国产欧美日韩一区二区三区四区 | 一区二区日韩免费看| 麻豆视频一区二区| 丝袜a∨在线一区二区三区不卡| 成人在线观看免费视频| 亚洲精品系列| 欧美69视频| 中文在线а√天堂| 久久99精品久久久野外观看| 亚洲精品高潮| 老司机精品久久| 国产一区二区三区自拍| 你懂的国产精品| 欧美日韩一区二区国产| 亚洲尤物av| 亚洲主播在线| 国产精品社区| 91成人精品视频| 日韩一区电影| 日产精品一区二区| 卡一精品卡二卡三网站乱码| 国产欧美丝祙| 国产日韩一区二区三区在线| 婷婷精品在线观看| 石原莉奈在线亚洲三区| 欧美日韩四区| 日韩午夜在线| 9久re热视频在线精品| 午夜精品一区二区三区国产| 日韩精品一区二区三区免费观影| 四季av一区二区凹凸精品| 欧美1区二区| 国产精品男女| 国产欧美日韩精品一区二区三区| 欧美专区一区| 国产日韩亚洲欧美精品| 国产欧美日韩在线一区二区| 国产乱子精品一区二区在线观看| 91大神在线观看线路一区| 日韩免费精品| 欧美日韩伊人| 国产精品亲子伦av一区二区三区| 亚洲一区导航| 日本亚洲最大的色成网站www | 国产亚洲在线| 国产午夜久久| 久久不射网站| 日韩精彩视频在线观看| 国产精品天堂蜜av在线播放| 国产精品v日韩精品v欧美精品网站| 国产精品久久久久久久久久妞妞 | 激情欧美亚洲| 夜夜嗨一区二区| 亚洲三级网站| 国产精品激情| 国产v日韩v欧美v| 久久国产影院| 久久国产精品亚洲77777| 日韩精品一区第一页| 丝袜a∨在线一区二区三区不卡| 亚洲精品乱码| 国产精品三级| 日韩免费视频| 亚洲一区二区成人| 久久精品72免费观看| 国产一区二区三区探花| 青青久久av| 亚洲伊人精品酒店| 国产劲爆久久| 99tv成人| 日韩精品久久久久久久软件91| 国产精品黄网站| 91精品韩国| 久久国产精品亚洲77777| 国产精品片aa在线观看| 久久国产日本精品| 综合视频一区| 成人国产综合| 亚洲一区二区三区四区五区午夜| 国产麻豆精品久久| 播放一区二区| 综合国产精品| 精品视频在线你懂得| 欧美亚洲国产一区| 日本不卡不码高清免费观看| 日韩av在线中文字幕| 亚洲一区二区动漫| 精品美女视频| 伊人久久成人| 免费一级欧美片在线观看网站 | 尤物在线精品| 国产精品国码视频| 136国产福利精品导航网址| 亚洲精品乱码久久久久久蜜桃麻豆 | 在线观看免费一区二区| 日本国产欧美| 在线日韩av| 国产精品毛片久久久| 99国产一区| 精品伊人久久久| 亚洲三级视频| 99久精品视频在线观看视频| 国产欧美69| 丝袜美腿亚洲一区| 超碰在线99| 欧美日韩91| 亚洲综合日韩| 蜜桃精品在线| 国产日韩一区二区三区在线播放| 国产综合精品| 一区二区精品伦理...| 日本aⅴ亚洲精品中文乱码 | 91偷拍一区二区三区精品| 日韩欧美激情| 欧美日韩国产欧| 人人草在线视频| 你懂的亚洲视频| 日韩国产精品久久久| 欧美午夜不卡| 日韩国产专区| 欧美黄色一区二区| 亚洲1区在线观看| 欧美日韩国产探花| 国产精品亚洲一区二区三区在线观看| 国产日产一区| 最近国产精品视频| 欧美午夜不卡影院在线观看完整版免费| 日韩av片子| 久久精品系列| 国产精品白丝av嫩草影院| 日韩精品1区2区3区| 视频一区二区三区在线| 免费毛片在线不卡| 久久久精品午夜少妇| 日韩大片免费观看| 久久不卡国产精品一区二区| 亚州精品视频| 亚洲欧美日本国产| 日韩一区二区久久| 不卡中文字幕| 精品在线99| 婷婷综合在线| 不卡在线一区| 日韩一级网站| 亚洲欧洲另类| 在线亚洲国产精品网站| 美女久久网站|