# 介紹
* 為對象添加新功能
* 不改變其原有的結構和功能
# 在項目中使用裝飾器模式
**可以通過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)
* 使用示例

# 設計原則驗證
* 將現有對象和裝飾器進行分離,兩者獨立存在
* 符合開放封閉原則