目录
介绍
适配器模式的作用是解决两个软件实体间的接口不兼容的问题,使用适配器模式之后,原本因为接口不兼容而不能工作的两个软件实体可以一起工作。
实例:适配不同地图源
假如我们之前编写了一个旧的广东省地图的页面,根据第三方资源获取到大部分城市以及这些城市对应的 ID,并成功地渲染到页面上。一段时间过去后,第三方的数据更新了,补充了一些城市数据,然而提供的新数据被另外一个接口统一管理,这个问题倒是好解决,最让人头痛的问题是,这个接口下发的数据结构与之前完全不同,这个时候呢,就轮到适配器模式出场了,我们只要增加一个数据格式转换适配器即可解决这些麻烦的问题,代码实现如下:
var getGuangdongCity = function() {var guangdongCity = [{name: 'shenzhen',id: 11},{name: 'guangzhou',id: 12}];return guangdongCity;};var render = function(fn) {console.log('开始渲染广东省地图');document.write(JSON.stringify(fn()));};var addressAdapter = function(oldAddressFn) {var address = {},oldAddress = oldAddress();for (var i = 0; i < oldAddress.length; i++) {address[oldAddress[i].name] = oldAddress[i].id;}return function() {return address;}};render(addressAdapter(getGuangdongCity));
最后,将原代码中调用 getGuangdongCity 的地方,用经过 addressAdapter 适配器转换之后的新函数来代替。
ID : 64DATE : 2018/01/21AUTHER : WJT20TAG : JavaScript
