结构型 | 装饰模式
相比生成子类更加灵活。
#
意图动态地给一个对象添加一些额外的职责, 同时不改变原有内部结构。
#
场景- 需要不修改代码情况下使用对象, 且要求运行时为对象新增额外的行为
- 用继承来扩展对象行为的方案难以实现或者根本不可行
应用:
#
缺点多层装饰比较复杂
#
实现测试
#
背景ES7新特性,装饰器
面试:
- 请介绍一下装饰者模式,并实现?
#
介绍装饰者模式,是动态的给类(对象)增加职责的设计模式, 属于设计模式中结构型模式大类。 在不改变元对象的基础上, 对这个对象进行包装盒拓展, 从而使对象有更加复杂的功能
#
实现#
面向对象实现多个装饰器
#
基于对象实现用一个变量来保存原函数的引用,然后再重写 drive 方法
工具函数, 辅助装饰函数
#
ES7实现(语法糖)方法装饰器
类装饰器 函数方法装饰器
#
应用 react中高阶组件作为装饰器需要逻辑复用时,HOC接受一个react组件, 返回一个新的react组件。
#
应用 装饰器模式增强fetchhttps://mp.weixin.qq.com/s/1ptRKOXMMe6pjU0jvu5tAw
#
环境https://babeljs.io/docs/en/babel-plugin-proposal-decorators
命令行
配置文件
原理
#
tshttps://www.typescriptlang.org/docs/handbook/decorators.html https://www.tslang.cn/docs/handbook/decorators.html