装饰者模式是一种结构型设计模式,它允许你动态地将新功能附加到对象上。通过使用装饰者模式,你可以将对象包装在一个或多个装饰者中,以改变其行为,而不需要修改原始对象的代码。这种模式提供了一种灵活的方式来扩展对象的功能,同时遵循开放封闭原则。
在本文中,我们将学习如何在 JavaScript 中实现装饰者模式,并提供相应的源代码示例。
示例场景:
假设我们有一个简单的订单类,它具有计算总价的功能。现在,我们希望能够根据订单的不同属性,例如优惠券、礼品包装等,动态地添加额外的费用或功能。
实现:
首先,我们创建一个基本的订单类 Order,它具有计算总价的功能:
class Order {
calculateTotal() {
return 100