通过实现委托的方法来为其提供数据

21 min read

实现委托的方法通常用于为某个对象提供数据或其他资源。委托模式的目的是让某个对象能够访问另一个对象的方法或属性,而不需要直接继承另一个对象。例如,如果一个类需要访问另一个类的方法或属性,但不希望与另一个类直接耦合,那么可以通过实现委托来实现。在这种情况下,第一个类可以通过实例化第二个类并将请求委托给它来访问第二个类的方法或属性。

class DataProvider {
  constructor() {
    this.data = {};
  }

  getData(key) {
    return this.data[key];
  }

  setData(key, value) {
    this.data[key] = value;
  }
}

class DataConsumer {
  constructor(dataProvider) {
    this.dataProvider = dataProvider;
  }

  consumeData(key) {
    const data = this.dataProvider.getData(key);
    // do something with the data
  }

  produceData(key, value) {
    this.dataProvider.setData(key, value);
  }
}

const dataProvider = new DataProvider();
const dataConsumer = new DataConsumer(dataProvider);

在这个例子中,DataConsumer 类需要访问 DataProvider 类的方法和属性,但又不希望与 DataProvider 直接耦合。

为了实现这一目标,DataConsumer 通过实例化 DataProvider 并将请求委托给它来访问 DataProvider 的方法和属性。

这样,DataConsumer 可以通过 dataProvider 对象来访问 DataProvider 类的方法和属性,而不需要直接继承 DataProvider