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

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

JavaScript設計模式之門面模式原理與實現方法分析

瀏覽:184日期:2023-11-08 13:33:22

本文實例講述了JavaScript設計模式之門面模式原理與實現方法。分享給大家供大家參考,具體如下:

外部與一個子系統的通信必須通過一個系統的一個門面對象進行,這就是門面模式。

門面模式具備如下兩個角色:

1. 門面角色

客戶端可以調用這個角色方法,此角色中有子系統的應用(知曉相關的(一個或多個)子系統的功能和責任)。本角色會將所有從客戶端發來的請求委派到相應的子系統去。

2. 子系統角色

可以同時有一個或多個子系統。每一個子系統都不是一個單獨的類,而是一些類的集合。每一個子系統都可以被客戶端直接調用(這樣客戶端代碼會多),或被門面角色調用。子系統并不知道門面的存在,對于子系統而言,門面僅僅是另一個客戶端而已。

下面我們來看一個可以提現門面模式的簡單需求:主人為自己的寵物狗辦理的相應的寵物領養證件

從這個簡單的需求中我們可以大致分析出我們需要:主人Person類和寵物狗Dog類 的一些相關信息

在下面的例子中國會涉及到接口的驗證,現在先將代碼貼出來

//(定義一個靜態方法來實現接口與實現類的直接檢驗//靜態方法不要寫出Interface.prototype ,因為這是寫到接口的原型鏈上的//我們要把靜態的函數直接寫到類層次上//定義一個接口類var Interface=function (name,methods) {//name:接口名字 if(arguments.length<2){ alert('必須是兩個參數') } this.name=name; this.methods=[];//定義一個空數組裝載函數名 for(var i=0;i<methods.length;i++){ if(typeof methods[i]!='string'){ alert('函數名必須是字符串類型'); }else { this.methods.push( methods[i]); } }};Interface.ensureImplement=function (object) { if(arguments.length<2){ throw new Error('參數必須不少于2個') return false; } for(var i=1;i<arguments.length;i++){ var inter=arguments[i]; //如果是接口就必須是Interface類型 if(inter.constructor!=Interface){ throw new Error('如果是接口類的話,就必須是Interface類型'); } //判斷接口中的方法是否全部實現 //遍歷函數集合 for(var j=0;j<inter.methods.length;j++){ var method=inter.methods[j];//接口中所有函數 //object[method]傳入的函數 //最終是判斷傳入的函數是否與接口中所用函數匹配 if(!object[method]||typeof object[method]!='function' ){//實現類中必須有方法名字與接口中所用方法名相同throw new Error('實現類中沒有完全實現接口中的所有方法') } } }}

(1)主人類(Person類)

function Person() { this.name='測試'; this.address='居住在中國'; this.getInfo=function () { return '名字'+this.name+' 地址'+this.address; }; this.learn=function () { alert('學習的方法'); } this.marray=function () { alert('marray'); } //驗證接口 Interface.ensureImplement(this,PersonDao);//驗證該類是否全部實現接口中的方法 }

(2)寵物狗(Dog類)

var DogDao=new Interface('DogDao',['getInfo','call','run']); var Dog=function () { this.name='gg'; this.getInfo=function () { return '狗狗的名字'+this.name; }; this.call=function () { }; this.run=function () {}; Interface.ensureImplement(this,DogDao);//驗證接口 }

(3)現在可以主人可以給自己的寵物狗辦理寵物領養證件了 -----客戶端代碼

第一種方法:不用門面的方式客戶端的代碼如下

function action(person,dog) { var r='GG'+new Date().getDay()+Math.floor(Math.random()*11); var str='辦證成功:編號'+r +'<br/>主人信息'+person.getInfo() +'<br>狗狗的信息:'+dog.getInfo(); return str;}document.write(action(new Person(),new Dog()));

第二種方法:使用門面模式-----將復雜的事交給門面來做,客戶端壓力可以減小

#1:門面中進行如下的處理

function facade(person,dog) { var r='GG'+new Date().getDay()+Math.floor(Math.random()*11); var str='辦證成功:編號'+r +'<br/>主人信息'+person.getInfo() +'<br>狗狗的信息:'+dog.getInfo(); this.action=function () {//相當于實例的方法 return str; }; }

#2,客戶端負責使用的代碼為

function action2(person,dog) { document.write(new facade(person,dog).action());}action2(new Person(),new Dog());

總結,我們可以看出不適用門面模式的客戶端需要處理較為復雜的業務,使用門面后,在門面中處理復雜的東西,而客戶端只需要簡單的調用即可。

一個簡單理解門面模式的圖結構:

JavaScript設計模式之門面模式原理與實現方法分析

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

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

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产综合精品| 蜜臀91精品国产高清在线观看| 久久久久一区| 欧美激情aⅴ一区二区三区 | 国产精品v日韩精品v欧美精品网站 | 亚洲精品四区| 亚洲视频国产精品| 亚洲精品国产偷自在线观看| 国产综合色产| 蜜臀va亚洲va欧美va天堂| 在线精品国产亚洲| 国产日韩三级| 国产一区二区三区探花| 成人片免费看| 免费久久99精品国产| 亚洲免费一区三区| 国产福利资源一区| 久久国产电影| 影音先锋久久精品| 国产精品手机在线播放| 日韩成人免费| 亚洲福利国产| 丝袜亚洲精品中文字幕一区| 久久国产精品免费一区二区三区| 国产96在线亚洲| 国产精品丝袜xxxxxxx| 国产日本精品| 日韩欧美中文| 亚洲97av| 精品无人区麻豆乱码久久久| 久久久一二三| 久久国产三级| 欧美专区在线| av在线最新| 日本伊人久久| 97国产成人高清在线观看| 亚洲免费毛片| 波多视频一区| 国产精品一区二区免费福利视频 | 成人黄色av| 亚洲一二av| 久久视频精品| 欧美激情三区| 亚洲丝袜美腿一区| 日韩一区电影| 国产一区二区三区久久久久久久久| 三级一区在线视频先锋| 日韩高清不卡| 久久av免费| 亚洲一区二区三区高清| 日韩国产欧美一区二区| 国产激情久久| 国产欧美一区二区色老头| 麻豆精品网站| 国产农村妇女精品一区二区| 欧美亚洲国产激情| 久久91导航| 免费观看亚洲| 久久久久久久久99精品大| 久久中文字幕一区二区| 国产欧美日韩一区二区三区在线| 中文字幕亚洲精品乱码| 中文字幕日韩亚洲| 日本亚洲欧美天堂免费| 欧美精品黄色| 久久国产99| 亚洲三区欧美一区国产二区| 视频一区欧美精品| 综合激情在线| 美腿丝袜亚洲一区| 中文在线资源| 午夜精品亚洲| 日本在线视频一区二区| 日韩va欧美va亚洲va久久| 久久国产婷婷国产香蕉| 老司机精品视频网| 日韩精品2区| 米奇777超碰欧美日韩亚洲| 在线国产一区二区| 1024精品久久久久久久久| 欧美日韩黄网站| 97在线精品| 伊人久久成人| 欧美日韩国产一区二区在线观看| 久久精品三级| 亚洲欧美日韩高清在线| 亚洲精品系列| 在线亚洲人成| 视频一区中文字幕精品| 精品精品国产三级a∨在线| 久久国产日本精品| 五月天激情综合网| 日韩av一二三| 久久久久亚洲| 在线一区视频| av在线资源| 亚洲欧美久久精品| 日韩久久一区二区三区| 在线精品亚洲| av资源新版天堂在线| 婷婷综合电影| 日韩精品一区二区三区免费观看| 综合国产视频| 日本韩国欧美超级黄在线观看| 亚洲一区欧美激情| 美女久久久久久| 久久亚洲风情| 中文字幕在线官网| 亚洲不卡视频| 国产精品99视频| 69堂精品视频在线播放| 91久久久精品国产| 国产精品网站在线看| 在线视频日韩| 日韩在线综合| 国产精品jk白丝蜜臀av小说| 欧美另类综合| 亚洲va中文在线播放免费| 中文字幕一区二区三区四区久久 | 久久午夜影视| 日韩精品欧美| 国产成人免费| 国产精品qvod| 婷婷成人av| 国产亚洲精品v| 久久精品二区三区| 国产成人精品一区二区三区在线| 欧美一级二级视频| 热久久国产精品| 欧美亚洲在线日韩| 高清在线一区| 日产精品一区二区| 国产一区二区三区亚洲综合| 精品一区视频| 国产精品一区亚洲| 国产精品一区二区三区美女| 久久狠狠久久| 欧美a级一区二区| 久久99精品久久久久久园产越南 | 日韩精品一区二区三区免费观影| 精品欧美日韩精品| 91亚洲自偷观看高清| 91看片一区| 桃色av一区二区| 在线观看精品| 亚洲欧美日韩精品一区二区 | 亚洲三级精品| 日韩三级精品| 国产精品qvod| 欧洲精品一区二区三区| 欧美在线亚洲综合一区| 亚洲欧美在线专区| 日本精品在线播放| 精品国产成人| 1024精品一区二区三区| 视频一区二区中文字幕| 国产毛片精品久久| 国产日韩电影| 五月天激情综合网| 日韩在线网址| 久久久久97| 一本一道久久a久久精品蜜桃| 伊人久久亚洲| 精品国产中文字幕第一页 | 国产一区2区在线观看| 欧美 日韩 国产一区二区在线视频| 午夜宅男久久久| 精品国内亚洲2022精品成人| 午夜欧美精品久久久久久久| 欧美日韩一视频区二区| 欧美二三四区| 国产精品1区| 夜夜嗨av一区二区三区网站四季av| 国产精品一级| 久久福利精品| 久久视频一区| 国语精品一区| 欧美伊人影院| 免费在线观看视频一区| 日韩精品1区| 精品美女视频| 国产精品片aa在线观看| 日韩精品一区二区三区中文| 久久精品一区二区不卡| 国产第一亚洲| 国产精品啊啊啊| 亚洲精品系列| 美国三级日本三级久久99| 日韩国产在线| 日韩.com| 日韩不卡一区| 国精品产品一区| 精品日韩一区| 免费观看亚洲天堂| 国产精品麻豆成人av电影艾秋 | 成年男女免费视频网站不卡| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 日韩视频一区二区三区在线播放免费观看| 成人在线免费观看91| 国产精品久久久久久久久久白浆|