Skip to content

Latest commit

 

History

History
72 lines (61 loc) · 1.64 KB

91.md

File metadata and controls

72 lines (61 loc) · 1.64 KB

适配器模式

适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转换成客户希望的另外一个接口(方法或属性) 适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一起工作 生活中的接口转换器,多功能插板, 笔记本充电器等

适配器模式作用

  • 使用一个已经存在的对象,但是其方法或接口不符合你的要求
  • 创建一个可复用的对象,该对象可以与其他不相关或不可见的对象协同工作
  • 使用已存在的一个或多个对象,但是不能进行继承已匹配它的接口

适配器模式的注意事项

  • 与代理模式的区别, 代理模式不改变原接口, 适配是原接口不符合规范

适配器模式示例

// 风格1代码
var a = {
    test: function() {
        console.log('test');
    },
    go: function() {
        console.log('go');
    },
    run: function() {
        console.log('run');
    }
};

// 风格2代码
var b = function() {};
b.prototype.test = function() {
    console.log('test');
};
b.prototype.go = function() {
    console.log('go');
};
b.prototype.eat = function() {
    console.log('eat');
};

// 适配器模式兼容两种风格的方法
var adapter = function() {
    var nb = new b();
    return {
        test: function() {
            nb.test();
        },
        go: function() {
            nb.go();
        },
        run: function() {
            a.run();
        },
        eat: function() {
            nb.eat();
        },
    }
};

// 实例化适配器
var ad = new adapter();

// 调用
ad.test();
ad.go();
ad.run();
ad.eat();