JavaScript es6设计模式 – Adapter(适配器模式)

130次阅读
没有评论

Adapter(适配器模式)

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

'use strict';

class Target {
    constructor(type) {
        console.log('Target Class created!');
        let result = undefined;

        switch (type) {
            case 'adapter':
                result = new AdapterImpl();
                break
            default:
                result = undefined;
        }
        return result;
    }

    request() {
        console.log('Target.request invoked');
    }
}

class Adapter {
    constructor() {
        console.log('Adapter Class created');
    }

    specificRequest() {
        console.log('Adapter.specificRequest invoked');
    }
}

class AdapterImpl extends Adapter {
    constructor() {
        super()
        console.log('AdapterImpl Class created');
    }

    request() {
        console.log('AdapterImpl.request invoked');
        return this.specificRequest();
    }
}

var f = new Target("adapter");
f.request();