设计模式之适配器模式

Posted by franki on November 11, 2018

adapter

适配器模式 解决两个软件实体之间接口不兼容的问题

var googleMap = {
    show: function() {
        console.log("start to render googleMap");
    }
};

var baiduMap = {
    show: function() {
        console.log("start to render baiduMap");
    }
};

function renderMap(map) {
    if (map.show instanceof Function) {
        map.show();
    }
}

renderMap(googleMap);
renderMap(baiduMap);
// 某个第三个接口不适用,可以启动适配器的模式
var googleMap = {
    show: function() {
        console.log("start to render googleMap");
    }
};

var baiduMap = {
    display: function() {
        console.log("start to render baiduMap");
    }
};

var baiduMapAdapt = {
    show: function() {
        return baiduMap.display();
    }
};

function renderMap(map) {
    if (map.show instanceof Function) {
        map.show();
    }
}

renderMap(googleMap);
renderMap(baiduMapAdapt);