# 介绍
* 为对象添加新功能
* 不改变其原有的结构和功能
# 在项目中使用装饰器模式
**可以通过babel在项目中使用**
* 命令行:
babel 6.x 使用`babel-plugin-transform-decorators-legacy`插件:
`npm install babel-plugin-transform-decorators-legacy --save-dev`
babel 7.x使用`@babel/plugin-proposal-decorators`插件:
`npm install @babel/plugin-proposal-decorators --save-dev`
* 编辑`.babelrc`文件
```
{
"presets": ["@babel/preset-env"],
"plugins": [
["@babel/plugin-proposal-decorators", {"legacy":true}]
]
}
```





# 第三方装饰器
**core-decorators**
* 第三方开源lib
* 提供常用的装饰器
* 文档[链接][https://github.com/jayphelps/core-decorators](https://github.com/jayphelps/core-decorators)
* 使用示例

# 设计原则验证
* 将现有对象和装饰器进行分离,两者独立存在
* 符合开放封闭原则
