编程语言
首页 > 编程语言> > JavaScript 设计模式——结构——装饰器

JavaScript 设计模式——结构——装饰器

作者:互联网




装饰器是一种结构设计模式,它允许我们将新行为放置在包含对象的特殊包装对象中,从而将新行为附加到对象上。

在下面的示例中,我们使用装饰器来扩展 Facebook 通知中的行为。
class Notification {
  constructor(kind) {
    this.kind = kind || "Generic";
  }

  getInfo() {
    return `I'm a ${this.kind} Notification`;
  }
}

class FacebookNotification extends Notification {
  constructor() {
    super("Facebook");
  }

  setNotification(msg) {
    this.message = msg;
  }

  getInfo() {
    return `${super.getInfo()} with the message: ${this.message}`;
  }
}

class SMSNotification extends Notification {
  constructor() {
    super("SMS");
  }

  getInfo() {
    return super.getInfo();
  }
}

export { FacebookNotification, SMSNotification };

在运行时向对象添加扩展而不影响其他对象时使用此模式。

标签:JavaScript,装饰器,对象
来源: