解决的问题:代码低耦合的方式使两个不兼容的接口在一起使用
原则:不改变原始程序
原始接口不要轻易改,改掉后会导致一些业务逻辑和方法不能用
简单示例:
需求:需要将两个对象中的方法传入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
时间: 2024-11-05 10:30:19