ECMAScript 7
网上查到的资料都说 Decorator 是 ECMAScript 7 的新特性。然而查找了各种官方文档,均没有发现 ECMAScript 7 或者是 ECMAScript 2017 包括 Decorator 的蛛丝马迹。
Decorator
Decorator 模式
要想正确理解设计模式,首先必须明确它是为了解决什么问题而提出来的。
Python 中,装饰者模式是指一个函数使用另一个函数,不明确修改但扩展后一个函数的行为。也就是说装饰者模式以对客户端透明的方式扩展对象的功能。是继承关系的一个替代方案。
针对的问题
动态地给一个对象添加一些额外的职责。不改变接口的前提下,增强所考虑的类的性能。
何时使用:
- 需要扩展一个类的功能,或给一个类增加附加责任;
- 需要动态的给一个对象增加功能,这些功能可以再动态的取消;
- 需要增加一些基本功能的排列组合而产生的非常大量的功能,从而使继承变得不现实;