javascript設(shè)計(jì)模式之Adapter模式【適配器模式】實(shí)現(xiàn)方法示例
本文實(shí)例講述了javascript設(shè)計(jì)模式之Adapter模式。分享給大家供大家參考,具體如下:
所謂Adapter模式就是適配器模式,主要是指使兩個(gè)原本沒有關(guān)聯(lián)的類結(jié)合一起使用。
JS實(shí)現(xiàn)Adapter模式示例如下:
<!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript" src="json.js"></script> <script type="text/javascript" language="javascript"> var DataSource01={}; DataSource01.Author="Kevin"; DataSource01.GetName=function(){ return "Kevin"; }; DataSource01.GetAge=function(){ return 35; }; var DataSource02={}; DataSource02.Author="Leo"; DataSource02.MyName=function(){ return "Leo"; }; DataSource02.MyAge=function(){ return 25; }; var DataSource03={}; DataSource03.Author="zhihui"; DataSource03.Name=function(){ return "zhihui"; }; DataSource03.Age=function(){ return 25; }; //講所有的放入一個(gè)數(shù)組中 //在生成隨機(jī)數(shù)后可以以下標(biāo) var DataSources=[DataSource01,DataSource02,DataSource03]; var DataAdapter={}; DataAdapter.DataSource=false; DataAdapter.SetDataSource=function(ds){ DataAdapter.DataSource=ds; }; DataAdapter.ReturnData=function(){ var Data={}; Data.Author=false; Data.Name=false; Data.Age=false; //生成隨機(jī)數(shù) //用來隨機(jī)模擬前臺(tái)的點(diǎn)擊 var rand=Math.random(); rand=Math.floor(Math.random()*3); console.log(rand); console.log(DataSources[rand]); DataAdapter.SetDataSource(DataSources[rand]); if(rand==0){ Data.Author=DataAdapter.DataSource.Author; Data.Name=DataAdapter.DataSource.GetName(); Data.Age=DataAdapter.DataSource.GetAge(); }else if(rand==1){ Data.Author=DataAdapter.DataSource.Author; Data.Name=DataAdapter.DataSource.MyName(); Data.Age=DataAdapter.DataSource.MyAge(); }else if(rand==2){ Data.Author=DataAdapter.DataSource.Author; Data.Name=DataAdapter.DataSource.Name(); Data.Age=DataAdapter.DataSource.Age(); } return Data; }; function ShowData(){ var Data= DataAdapter.ReturnData(); alert(Data.toJSONString()); } function ChooseDS01(){ DataAdapter.SetDataSource( DataSource01); } function ChooseDS02(){ DataAdapter.SetDataSource( DataSource02); } </script> </head> <body> <input type="button" value="DataSource01" onclick="ChooseDS01()"> <input type="button" value="DataSource02" onclick="ChooseDS02()"> <input type="button" value="Show Data" onclick="ShowData()"> </body> </html>
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JavaScript適配器模式詳解
- JavaScript設(shè)計(jì)模式之適配器模式介紹
- 深入理解JavaScript系列(39):設(shè)計(jì)模式之適配器模式詳解
- 詳解JavaScript實(shí)現(xiàn)設(shè)計(jì)模式中的適配器模式的方法
- javascript設(shè)計(jì)模式 – 適配器模式原理與應(yīng)用實(shí)例分析
- JavaScript設(shè)計(jì)模式學(xué)習(xí)之適配器模式
- JavaScript 設(shè)計(jì)模式之組合模式解析
- JavaScript組合模式學(xué)習(xí)要點(diǎn)
- 設(shè)計(jì)模式中的組合模式在JavaScript程序構(gòu)建中的使用
- javascript設(shè)計(jì)模式 – 組合模式原理與應(yīng)用實(shí)例分析
- JavaScript設(shè)計(jì)模式開發(fā)中組合模式的使用教程
- javascript適配器模式和組合模式原理與實(shí)現(xiàn)方法詳解
相關(guān)文章
將中國(guó)標(biāo)準(zhǔn)時(shí)間轉(zhuǎn)換成標(biāo)準(zhǔn)格式的代碼
這篇文章主要介紹了將中國(guó)標(biāo)準(zhǔn)時(shí)間轉(zhuǎn)換成標(biāo)準(zhǔn)格式的方法,需要的朋友可以參考下2014-03-03HTML+JS實(shí)現(xiàn)監(jiān)控切屏功能
這篇文章主要介紹了如何利用HTML和JavaScript實(shí)現(xiàn)監(jiān)控切屏功能,監(jiān)控是否離開當(dāng)前頁面,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-03-03JavaScrip調(diào)試技巧之?dāng)帱c(diǎn)調(diào)試
本篇文章給大家介紹javascript調(diào)試技巧之?dāng)帱c(diǎn)調(diào)試,主要介紹使用Firebug、debugger、debugger在程序中加入斷點(diǎn)調(diào)試等,但是這些調(diào)試技巧都不借助于瀏覽器之外的工具,其他瀏覽器主要是opera、safari、chrome和ie8,感興趣的小伙伴一起看看吧2015-10-10Javascript實(shí)現(xiàn)快速排序(Quicksort)的算法詳解
排序算法(Sorting algorithm)是計(jì)算機(jī)科學(xué)最古老、最基本的課題之一,要想成為合格的程序員,就必須理解和掌握各種排序算法。2015-09-09原生js?XMLhttprequest請(qǐng)求onreadystatechange執(zhí)行兩次的解決
這篇文章主要介紹了原生js?XMLhttprequest請(qǐng)求onreadystatechange執(zhí)行兩次的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02JavaScript中const、var和let區(qū)別淺析
在JavaScript中有三種聲明變量的方式:var、let、const。但是有朋友不清楚這三種聲明變量的區(qū)別,下面腳本之家小編給大家詳細(xì)介紹下js中const、var和let的區(qū)別,感興趣的朋友一起看看吧2016-10-10