初学javascript设计模式(五)适配器模式

9 篇文章 0 订阅
/*
适配器模式
*/
/*简单易懂的适配器模式*/
var fun1 = function(a1, a2, a3) {
    alert(a1);
    alert(a2);
    alert(a3);
}
var fun2 = function(a1, a2) {
    alert(a1);
    alert(a2);
}
/*我们要使用这个函数我们如次调用*/
fun1(1, 2, 3);
/*但是往往在调用之前会遇到我们只能得到1个对象,这个对象包含这3个参数,这个时候我们就需要使用适配器函数进行过度*/
var data = {
    a1: 1,
    a2: 1,
    a3: 1
}
/* 适配器像不像工厂?像不像门面? */
var Config = function() {
    switch (arguments.length) {
        case 1:
            fun1(arguments[0].a1, arguments[0].a2, arguments[0].a3);
            break;
        case 2:
            fun2(arguments[0].a1, arguments[0].a2);
            break;
        case 3:
            fun1(arguments[0], arguments[1], arguments[2]);
            break;
        default:
            return;
    }
}
/* 
差别在于,工厂是用于实例化一个对象;
适配器用于和谐多个接口,我们把fun1,和fun2当作2个内部完全不同的接口这就好理解了,虽然在这个例子中2个接口内部基本相同;
适配器与门面的差别:
门面模式里面我们调用fun1这个函数,需要3个参数,当用户只能提供小于3个参数是我们通过门面函数进行缺少参数的补全最后调用依然是fun1;
适配器模式里面我们就有了多个选择当用户提供的参数与fun1的参数个数不同,我们可以考虑fun2;
看了这个差别的描述应该能理解门面与适配器的差别了吧
适配器模式的最大优点在于不同库之间的兼容问题
*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值