最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript設(shè)計(jì)模式之原型模式和適配器模式示例詳解

 更新時(shí)間:2022年08月26日 09:20:21   作者:RiemannHypothesis  
這篇文章主要為大家介紹了JavaScript 原型模式和適配器模式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

原型模式

原型模式介紹

原型模式是指原型實(shí)例指向創(chuàng)建對(duì)象的種類,并通過拷貝這些原型創(chuàng)建新的對(duì)象,是一種用來創(chuàng)建對(duì)象的模式,也就是創(chuàng)建一個(gè)對(duì)象作為另一個(gè)對(duì)象的prototype屬性

實(shí)現(xiàn)原型模式是在ECMAScript5中,提出的Object.create方法,使用現(xiàn)有的對(duì)象來提供新創(chuàng)建的對(duì)象的__proto__。

代碼實(shí)現(xiàn)

var lynkCoPrototype = {
    model: "領(lǐng)克",
    getModel: function () {
        console.log('車輛模具是:' + this.model);
    }
};
var volvo = Object.create(lynkCoPrototype, {
    model: {
        value: "沃爾沃"
    }
});
volvo.getModel();

適配器模式

適配器模式介紹

適配器模式(Adapter)是將一個(gè)類(對(duì)象)的接口(方法或?qū)傩裕┺D(zhuǎn)化成客戶希望的另外一個(gè)接口(方法或?qū)傩裕m配器模式使得原本由于接口不兼容而不能一起工作的那些類(對(duì)象)可以一些工作。別稱包裝器(wrapper)。

代碼實(shí)現(xiàn)

class GooleMap {
    show() {
        console.log('渲染谷歌地圖')
    }
}
class BaiduMap {
    show() {
        console.log('渲染百度地圖')
    }
}
function render(map) {
    if (map.show instanceof Function) {
        map.show()
    }
}
render(new GooleMap())  // 渲染谷歌地圖
render(new BaiduMap())  // 渲染百度地圖

但是假如BaiduMap類的原型方法不叫show,而是叫display,這時(shí)候就可以使用適配器模式了,因?yàn)槲覀儾荒茌p易的改變第三方的內(nèi)容。在BaiduMap的基礎(chǔ)上封裝一層,對(duì)外暴露show方法。

class GooleMap {
    show() {
        console.log('渲染谷歌地圖')
    }
}
class BaiduMap {
    display() {
        console.log('渲染百度地圖')
    }
}
// 定義適配器類, 對(duì)BaiduMap類進(jìn)行封裝
class BaiduMapAdapter {
    show() {
        var baiduMap = new BaiduMap()
        return baiduMap.display() 
    }
}
function render(map) {
    if (map.show instanceof Function) {
        map.show()
    }
}
render(new GooleMap())         // 渲染谷歌地圖
render(new BaiduMapAdapter())  // 渲染百度地圖

小結(jié)

  • 適配器模式主要解決兩個(gè)接口之間不匹配的問題,不會(huì)改變?cè)械慕涌?,而是由一個(gè)對(duì)象對(duì)另一個(gè)對(duì)象的包裝。
  • 適配器模式符合開放封閉原則

以上就是JavaScript設(shè)計(jì)模式之原型模式和適配器模式示例詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 原型適配器模式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

卢氏县| 邳州市| 鹰潭市| 白朗县| 邵阳县| 连平县| 都江堰市| 涿鹿县| 揭阳市| 邢台市| 西安市| 临汾市| 郯城县| 岑溪市| 江华| 佳木斯市| 永清县| 仙游县| 法库县| 安远县| 鄂伦春自治旗| 正镶白旗| 新乡县| 凤凰县| 色达县| 渝北区| 绵竹市| 罗甸县| 西安市| 乌审旗| 唐山市| 新源县| 西和县| 崇左市| 木里| 锡林郭勒盟| 开原市| 隆昌县| 永年县| 普定县| 石林|