zoukankan      html  css  js  c++  java
  • 简单理解适配器模式

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

    原则:不改变原始程序

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

    简单示例:

    需求:需要将两个对象中的方法传入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))
  • 相关阅读:
    html5传感器
    html5 canvas手写字代码(兼容手机端)
    PHP pdo单例模式连接数据库
    PHP变量回收
    PHP不过过滤防止xss攻击的方法
    jquery监听回车
    jquery预加载显示百分比
    创建自己的代码仓库
    Luxurious Houses
    Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/wxyblog/p/12611528.html
Copyright © 2011-2022 走看看