JavaScript 设计模式是 JavaScript 开发者必须掌握的知识点之一。它可以帮助我们写出更加可维护、可扩展和可重用的代码。以下是一些常见的设计模式:

单例模式 (Singleton)

单例模式确保一个类只有一个实例,并提供一个全局访问点。

class Database {
  constructor() {
    if (!Database.instance) {
      Database.instance = this;
    }
    return Database.instance;
  }
}

const db = new Database();

观察者模式 (Observer)

观察者模式定义对象间的一对多依赖关系,当一个对象改变状态时,所有依赖于它的对象都会得到通知并自动更新。

class Subject {
  constructor() {
    this.observers = [];
  }

  subscribe(observer) {
    this.observers.push(observer);
  }

  notify() {
    this.observers.forEach(observer => observer.update());
  }
}

class Observer {
  update() {
    console.log('Observer notified!');
  }
}

const subject = new Subject();
const observer = new Observer();
subject.subscribe(observer);
subject.notify();

中介者模式 (Mediator)

中介者模式定义一个对象来封装一组对象之间的交互,使它们不需要显式地相互引用,从而降低它们之间的耦合。

class Mediator {
  constructor() {
    this.components = [];
  }

  addComponent(component) {
    this.components.push(component);
  }

  notify(component) {
    this.components.forEach(c => {
      if (c !== component) {
        c.receive(component);
      }
    });
  }
}

class Component {
  constructor(mediator) {
    this.mediator = mediator;
    this.mediator.addComponent(this);
  }

  receive() {
    // ...
  }
}

更多设计模式可以参考本站的设计模式教程

JavaScript 设计模式