亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript設(shè)計(jì)模式適配器模式實(shí)例

 更新時(shí)間:2022年06月23日 14:16:57   作者:??前端若水????  
這篇文章主要介紹了JavaScript設(shè)計(jì)模式適配器模式實(shí)例,適配器設(shè)計(jì)模式可以讓彼此不兼容的功能在一塊工作,有助于避免大規(guī)模的修改代碼,并且易于擴(kuò)展和兼容

前言:

適配器設(shè)計(jì)模式可以用生活中常用的筆記本電腦來(lái)做例子,筆記本使用電壓在20v左右,但是我們家用電壓在220v左右,所以我們希望用家用電適配對(duì)應(yīng)的筆記本電壓,這個(gè)時(shí)候就需要使用電源適配器

我們可以用我們剛剛說(shuō)的筆記本電腦來(lái)舉例子,這是家用電,家用電電壓為220V,所以我們返回一下電壓數(shù)

//?家用電
????????class?Power{
????????????charge(){
????????????????return?'220V';
????????????}
????????}

筆記本電源適配器,我們創(chuàng)建一個(gè)家用電實(shí)例,在通過(guò)方法對(duì)電壓進(jìn)行轉(zhuǎn)換為筆記本可充電的電壓

class?Adaptor{
????????????constructor(){
????????????????this.power=?new?Power();
????????????}
????????????charge(){
????????????????//?先拿到家用電電壓
????????????????let?voltage=this.power.charge;
????????????????//?返回一個(gè)轉(zhuǎn)換值
????????????????return?`${voltage}=>20V`
????????????}
????????}

電腦,我們創(chuàng)建一個(gè)電腦適配器實(shí)例,然后電腦適配器實(shí)例的電壓轉(zhuǎn)換方法對(duì)電壓進(jìn)行轉(zhuǎn)換充電

class?Computer{
????????constructor(){
????????????this.adaptor=new?Adaptor()
????????}
????????//?電腦充電
????????use(){
????????????console.log(this.adaptor.charge());
????????}
????}

使用:

const cop=new Computer();
//充電
cop.use();

在工作中我們需要使用到多個(gè)功能,比如我們項(xiàng)目中使用到了百度地圖數(shù)據(jù)接口和高德地圖數(shù)據(jù)接口,這個(gè)時(shí)候我們就可以去使用適配器模式

//對(duì)百度地圖的數(shù)據(jù)接口操作
const?BaiduMap={
???????????show(){
??????????????//獲取百度地圖數(shù)據(jù)
???????????}
???????}
       //對(duì)高德地圖的數(shù)據(jù)接口操作
???????const?GaodeiMap={
???????????show(){
???????????//獲取高德地圖數(shù)據(jù)
???????????}
???????}
            //對(duì)騰訊地圖的數(shù)據(jù)接口操作
???????const?TxMap={
???????????init(){
???????????//獲取騰訊地圖數(shù)據(jù)
???????????}
???????}

由于他們都有共同點(diǎn),所以請(qǐng)求數(shù)據(jù)都為show方法,如果有一天使用到其他的地圖請(qǐng)求數(shù)據(jù)為init的API接口,我們?nèi)バ薷墨@取數(shù)據(jù)的方法的話成本太高,這個(gè)時(shí)候就需要使用到了適配器設(shè)計(jì)模式,通過(guò)switch語(yǔ)句進(jìn)行匹配方法名,進(jìn)行調(diào)用

//接收倆個(gè)參數(shù),第一個(gè)是地圖模塊名,第二個(gè)是調(diào)用方法
function?Adapter(V,?fnName)?{
????????????switch?(fnName)?{
????????????????case?'show':
????????????????????V.show()
????????????????????break;
????????????????case?'init':
????????????????????V.init()
????????????????????break;
????????????}
????????}

適配器設(shè)計(jì)模式可以讓彼此不兼容的功能在一塊工作,有助于避免大規(guī)模的修改代碼,并且易于擴(kuò)展和兼容,但是如果過(guò)多的使用適配器,就會(huì)使得代碼復(fù)雜程度增加,看起來(lái)十分混亂,維護(hù)起來(lái)有一定的困難

到此這篇關(guān)于JavaScript設(shè)計(jì)模式適配器模式實(shí)例的文章就介紹到這了,更多相關(guān)JavaScript 適配器模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 京東優(yōu)選小程序的實(shí)現(xiàn)代碼示例

    京東優(yōu)選小程序的實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了京東優(yōu)選小程序的實(shí)現(xiàn)代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • JS循環(huán)中正確使用async、await的姿勢(shì)分享

    JS循環(huán)中正確使用async、await的姿勢(shì)分享

    async?/?await是ES7的重要特性之一,也是目前社區(qū)里公認(rèn)的優(yōu)秀異步解決方案,下面這篇文章主要給大家介紹了關(guān)于JS循環(huán)中正確使用async、await的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • JS中SetTimeout和SetInterval使用初探

    JS中SetTimeout和SetInterval使用初探

    這篇文章主要介紹了JS中SetTimeout和SetInterval使用初探,需要的朋友可以參考下
    2017-03-03
  • canvas 繪制圓形時(shí)鐘

    canvas 繪制圓形時(shí)鐘

    本文主要分享了利用canvas如何繪制圓形時(shí)鐘的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 小程序云開(kāi)發(fā)部署攻略(圖文教程)

    小程序云開(kāi)發(fā)部署攻略(圖文教程)

    微信小程序的云開(kāi)發(fā)功能剛剛上線,這篇文章主要介紹了小程序云開(kāi)發(fā)部署攻略(圖文教程),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • JavaScript裝飾器的實(shí)現(xiàn)原理詳解

    JavaScript裝飾器的實(shí)現(xiàn)原理詳解

    最近在使用TS+Vue的開(kāi)發(fā)模式,發(fā)現(xiàn)項(xiàng)目中大量使用了裝飾器,看得我手足無(wú)措,今天特意研究一下實(shí)現(xiàn)原理,方便自己理解這塊知識(shí)點(diǎn),有需要的小伙伴也可以參考一下
    2022-10-10
  • js項(xiàng)目中前端如何實(shí)現(xiàn)無(wú)感刷新token

    js項(xiàng)目中前端如何實(shí)現(xiàn)無(wú)感刷新token

    本文主要介紹了js項(xiàng)目中前端如何實(shí)現(xiàn)無(wú)感刷新token,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • JS實(shí)現(xiàn)無(wú)限級(jí)網(wǎng)頁(yè)折疊菜單(類似樹(shù)形菜單)效果代碼

    JS實(shí)現(xiàn)無(wú)限級(jí)網(wǎng)頁(yè)折疊菜單(類似樹(shù)形菜單)效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)無(wú)限級(jí)網(wǎng)頁(yè)折疊菜單(類似樹(shù)形菜單)效果代碼,涉及JavaScript基于鼠標(biāo)事件實(shí)現(xiàn)針對(duì)頁(yè)面元素結(jié)點(diǎn)的遍歷及樣式操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • ECharts柱狀圖過(guò)多添加滾動(dòng)條的步驟(親測(cè)可用)

    ECharts柱狀圖過(guò)多添加滾動(dòng)條的步驟(親測(cè)可用)

    這篇文章主要介紹了ECharts柱狀圖過(guò)多添加滾動(dòng)條的步驟(親測(cè)可用),添加echarts柱狀圖滾動(dòng)條,首先添加js用來(lái)判斷當(dāng)前視圖要顯示幾個(gè)及是否顯示滾動(dòng)條,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友參考下吧
    2024-01-01
  • JavaScript中實(shí)現(xiàn)sprintf、printf函數(shù)

    JavaScript中實(shí)現(xiàn)sprintf、printf函數(shù)

    這篇文章主要介紹了JavaScript中實(shí)現(xiàn)sprintf、printf函數(shù),這兩個(gè)函數(shù)在大多數(shù)編程語(yǔ)言中都有,但JS中卻沒(méi)有,本文介紹在js中實(shí)現(xiàn)這兩個(gè)函數(shù)功能,需要的朋友可以參考下
    2015-01-01

最新評(píng)論