我有两个具有相同接口的类,可实现不同的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_1
和RawAPI_2
调用方法。换句话说,我需要两个类ExtendedAPI_1
和ExtendedAPI_2
,它们将具有如下的方法bar()
:
bar() {
console.log('Extended');
this.foo()
}
如果在bar()
实例上调用ExtendedAPI_1
方法,则应从foo()
调用RawAPI_1
,如果在ExtendedAPI_2
实例上调用,则应调用{{ 1}}来自foo()
。
我想到的解决方案如下:
RawAPI_2
想知道这是否是一个好方法,是否还有其他方法可以做同样的事情。