我已经实现了一个库,该库公开了函数speach()
来创建具有特定公共API函数的对象。这些函数代理了一个内部对象class Speach
,我没有向最终用户公开它,因此实现细节无法触及。只要我继续支持公开公开的API,就可以在以后更改实现细节。
这个模式有名称吗?
class Speach {
constructor() {
// ...
}
browserSupportsFeature() {}
loadAPI() {}
voice(name) {
// ...
}
speak(textToSpeak) {
// ...
}
then(onFulfilled, onRejected) {
// ...
}
}
const speach = () => {
const speach = new Speach();
return {
voice(name) {
speach.voice(name);
return this;
},
speak(textToSpeak) {
speach.speak(textToSpeak);
return this;
},
then(thenable) {
speach.then(thenable);
return this;
}
};
};
最佳答案
抽象。
抽象是当您隐藏实现细节并且仅向客户端公开接口时。只要外部接口保持不变,开发人员就可以根据需要更改基础实现。