具有两个类的正确方法包含通用代码

时间:2018-09-14 13:53:05

标签: javascript oop inheritance

我有两个具有相同接口的类,可实现不同的API。

class RawAPI_1 {
    constructor(options) {
        this.options = options;
    }

    foo() {
        console.log('foo1')
    }
}

class RawAPI_2 {
    constructor(options) {
        this.options = options;
    }

    foo() {
        console.log('foo2')
    }
}

现在,我需要使用包裹在现有(原始)API方法上的方法来扩展这些类,以制作“扩展API”类。这些扩展的API方法对于两个类都是相同的-它们仅分别从RawAPI_1RawAPI_2调用方法。换句话说,我需要两个类ExtendedAPI_1ExtendedAPI_2,它们将具有如下的方法bar()

    bar() {
        console.log('Extended');
        this.foo()
    }

如果在bar()实例上调用ExtendedAPI_1方法,则应从foo()调用RawAPI_1,如果在ExtendedAPI_2实例上调用,则应调用{{ 1}}来自foo()

我想到的解决方案如下:

RawAPI_2

想知道这是否是一个好方法,是否还有其他方法可以做同样的事情。

0 个答案:

没有答案