码迷,mamicode.com
首页 > 其他好文 > 详细

简单理解适配器模式

时间:2020-04-01 12:57:51      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:splay   beijing   row   对象   instance   ceo   ESS   reac   接口   

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

原则:不改变原始程序

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

简单示例:

需求:需要将两个对象中的方法传入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))

 

简单理解适配器模式

标签:splay   beijing   row   对象   instance   ceo   ESS   reac   接口   

原文地址:https://www.cnblogs.com/wxyblog/p/12611528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!