简单理解适配器模式

解决的问题:代码低耦合的方式使两个不兼容的接口在一起使用

原则:不改变原始程序

原始接口不要轻易改,改掉后会导致一些业务逻辑和方法不能用

简单示例:

需求:需要将两个对象中的方法传入isBrowser中,但两个对象中的方法名改变会使得某些业务逻辑不可用

 var google={
          show:function(){
              console.log('我是浏览器')
          }
      }
      var baidu={
          display:function(){
              console.log('我是浏览器')
          }
      }
      var baiduAdapter = {  //适配器
          show:function(){
              return baidu.display()
          }
      }
      var isBrowser=function(browser){
            if (browser.show instanceof Function){
                browser.show()
            }
      }
      isBrowser(google);
      isBrowser(baiduAdapter)

示例2

通过适配器模式改变数据结构

var getBeijingCity=(function(){
        var beijingCity = [
            {name:'朝阳',id:1},
            {name:'海淀',id:2},
            {name:'大庆',id:3}
        ]
        return beijingCity
    })();

    var render = function(fn){
        console.log('北京');
        document.write(JSON.stringify(fn))
    }
    var addressAdpater=function(oldAdressfn){
        var address = {};
        oldAdressfn.forEach(function(c){
            address[c.name] = c.id;
        });
        return address ;
    }
    render(addressAdpater(getBeijingCity))
原文地址:https://www.cnblogs.com/wxyblog/p/12611528.html