日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaScript的show方法怎么調(diào)用

本篇內(nèi)容介紹了“JavaScript的show方法怎么調(diào)用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司主營(yíng)長(zhǎng)春網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App定制開發(fā),長(zhǎng)春h5重慶小程序開發(fā)搭建,長(zhǎng)春網(wǎng)站營(yíng)銷推廣歡迎長(zhǎng)春等地區(qū)企業(yè)咨詢

模式動(dòng)機(jī)

適配器模式的作用就是解決兩個(gè)軟件實(shí)體間接口不兼容情況.

通常情況下,使用者可以通過(guò)目標(biāo)類的接口訪問(wèn)它所提供的服務(wù)。開始時(shí)候沒(méi)有什么問(wèn)題, 但是一但后續(xù)別的接口(如第三方接口)有變動(dòng)或者后續(xù)擴(kuò)展需求, 此時(shí)使用原有接口已經(jīng)不可以提供服務(wù), 那么我們就需要把現(xiàn)有接口轉(zhuǎn)化為使用者需要的接口.適配器模式就是用來(lái)完成這樣的轉(zhuǎn)化.

在適配器模式中可以定義一個(gè)包裝類,包裝不兼容接口的對(duì)象,這個(gè)包裝類指的就是適配器(Adapter),它所包裝的對(duì)象就是適配者(Adaptee),即被適配的類。

模式定義

適配器模式(Adapter Pattern) :將一個(gè)接口轉(zhuǎn)換成使用者希望的另一個(gè)接口,適配器模式使接口不兼容的那些類可以一起工作,其別名為包裝器(Wrapper)。適配器模式既可以作為類結(jié)構(gòu)型模式,也可以作為對(duì)象結(jié)構(gòu)型模式。

模式結(jié)構(gòu)

適配器模式包含如下角色:

Target:目標(biāo)抽象類

Adapter:適配器類

Adaptee:適配者類

Client:客戶類

現(xiàn)實(shí)世界舉例論證

現(xiàn)在世界中的適配器模式使用如: 港式插頭轉(zhuǎn)換器, 電源適配器, USB轉(zhuǎn)接口。

需求舉例代碼實(shí)現(xiàn)

我們需要完成一個(gè)集成多個(gè)第三方地圖sdk進(jìn)行地圖渲染功能:

// 谷歌地圖,百度地圖sdk都有show方法進(jìn)行調(diào)用。

const googleMap = {

    show () {

        // 具體谷歌sdk的實(shí)現(xiàn)

        console.log('開始使用谷歌地圖渲染')

    }

};

const baiduMap = {

    show () {

        // 具體百度sdk的實(shí)現(xiàn)

        console.log('開始使用百度地圖渲染')

    }

}

// renderMap方法是提供給使用者來(lái)調(diào)用

const renderMap = (map) => {

    if (map.show instanceof Function) {

        map.show();

    }

};

renderMap(googleMap);

renderMap(baiduMap);

這個(gè)時(shí)候產(chǎn)品需要我們集成高德地圖sdk,但是高德地圖渲染方法不是show方法,而是render方法.

這個(gè)時(shí)候我們不應(yīng)該去改動(dòng)之前的源代碼違反開閉原則. 而應(yīng)該想到適配器模式.

// 谷歌地圖,百度地圖sdk都有show方法進(jìn)行調(diào)用。

const googleMap = {

    show () {

        // 具體谷歌sdk的實(shí)現(xiàn)

        console.log('開始使用谷歌地圖渲染')

    }

};

const baiduMap = {

    show () {

        // 具體百度sdk的實(shí)現(xiàn)

        console.log('開始使用百度地圖渲染')

    }

}

const gaodeMap = {

    render () {

        // 具體高德sdk的實(shí)現(xiàn)

        console.log('開始使用高德地圖渲染')

    }

}

// 適配器

const gaodeMapAdapater = {

    show () {

        return gaodeMap.render();

    }

}

// renderMap方法是提供給使用者來(lái)調(diào)用

const renderMap = (map) => {

    if (map.show instanceof Function) {

        map.show();

    }

};

renderMap(googleMap);

renderMap(baiduMap);

renderMap(gaodeMapAdapater);

另外一個(gè)例子也是我們常見的場(chǎng)景---數(shù)據(jù)格式變更, 這個(gè)我在開發(fā)中經(jīng)常遇到:

// 這是我們之前上傳資源, 后臺(tái)返回給我們的文件信息.

const responseUploadFile = {

    startTime: '',

    file: {

        size: '100kb',

        type: 'text',

        url: '',

        name: '',

        ...

    },

    id: ''

}

// 如果某天后臺(tái)突然說(shuō)因?yàn)槟承┰蚝罄m(xù)上傳文件返回格式有變動(dòng)了。如下

const changeResUploadFile = {

    size: '100kb',

    type: 'text',

    url: '',

    name: '',

    startTime: '',

    id: ''

}

// 由于我們之前使用舊格式數(shù)據(jù)做了很多業(yè)務(wù)邏輯,這個(gè)時(shí)候不能其改動(dòng),容易導(dǎo)致bug而且需求進(jìn)行回歸測(cè)試.

// 采用適配器模式

const responseUploadFileAdapter = (uploadFile) => {

    // 在這里對(duì)新的數(shù)據(jù)進(jìn)行拼接轉(zhuǎn)化

}

模式分析

優(yōu)點(diǎn):

將目標(biāo)類和適配者類解耦,通過(guò)引入一個(gè)適配器類來(lái)重用現(xiàn)有的適配者類,而無(wú)須修改原有代碼。

增加了類的透明性和復(fù)用性,將具體的實(shí)現(xiàn)封裝在適配者類中,對(duì)于客戶端類來(lái)說(shuō)是透明的

靈活性和擴(kuò)展性都非常好,通過(guò)使用配置文件,可以很方便地更換適配器,也可以在不修改原有代碼的基礎(chǔ)上增加新的適配器類,完全符合“開閉原則”。

適用環(huán)境

系統(tǒng)需要使用現(xiàn)有的類,而這些類的接口不符合系統(tǒng)的需要。

想要建立一個(gè)可以重復(fù)使用的類,用于與一些彼此之間沒(méi)有太大關(guān)聯(lián)的一些類,包括一些可能在將來(lái)引進(jìn)的類一起工作。

“JavaScript的show方法怎么調(diào)用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


分享文章:JavaScript的show方法怎么調(diào)用
鏈接URL:http://www.dlmjj.cn/article/iigcps.html