JavaScript适配器模式

适配模式的作用是解决两个软件实体间的接口不兼容问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。

原代码

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() ) );
}

render( getGuangdongCity );

当返回的数据结构改变时,旧的数据结构不适配:

  var guangdongCity = {
    shenzhen: 11,
    guangzhou: 12,
    zhuhai: 13,
};

新增一个数据格式转换的适配器

var addressAdapter = function( oldAddressfn ){
    
    var address = {},
        oldAddress = oldAddressfn();
        
    for( var i = 0, c; c = oldAddress[ i++ ]; ){
        addrss[ c.name ] = c.id;
    }
    
    return function(){
        return address;
    }
}

render( addressAdapter( getGuangdongCity ) );

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 适配器模式是为了解决软件实体间的接口不兼容性。使用适配器以后原本不兼容的两个软件的接口可以工作在一起了。宗旨是不要...
    smartphp阅读 978评论 0 1
  • 适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件...
    yufawu阅读 320评论 0 8
  • 引 适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个...
    27亿光年中的小小尘埃阅读 140评论 0 0
  • 引 你妈妈和你老婆两个Service,家里妈妈做主。有一天来客人了,客人说:快做饭!你妈妈对你老婆说:快做饭!你老...
    我就是小政政阅读 228评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,575评论 16 22