我已经实现了一个库,该库公开了函数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;
    }
  };
};

最佳答案

抽象。

抽象是当您隐藏实现细节并且仅向客户端公开接口时。只要外部接口保持不变,开发人员就可以根据需要更改基础实现。

08-05 16:38