## 装饰器模式
###
也叫包装模式,它是作为现有的类的一个包装,允许向一个现有的对象添加新的功能,同时不改变其结构。
###
给对象增加功能,一般两种方式继承或者关联组合,**将一个类的对象嵌入到另一个对象中,由另外一个对象来决定是否调用嵌入对象的行为来增强功能,这个就是装饰器模式,比继承模式更加灵活**
###
**以动态、透明的⽅式给单个对象添加职责,但⼜能不改变其结构**
###
![](https://img.kancloud.cn/f1/e8/f1e8f1d6c89413f4efb806c63449096b_1904x1504.png)
###
## ⻆⾊分析(**装饰者和被装饰者有相同的超类(Component)**)
###
### 抽象组建(Component)
###
定义装饰⽅法的规范,最初的⾃⾏⻋,仅仅定义了⾃⾏⻋的API;
###
### 被装饰者(ConcreteComponent)
###
Component的具体实现,也就是我们要装饰的具体对象
实现了核⼼⻆⾊的具体⾃⾏⻋
###
### 装饰者组件(Decorator)
###
定义具体装饰者的⾏为规范, 和Component⻆⾊有相同的接⼝,持有组件(Component)对象的实例引⽤
###
⾃⾏⻋组件 都有 名称和价格
###
### 具体装饰物(ConcreteDecorator)
###
负责给构件对象装饰附加的功能
⽐如 喇叭,防爆胎
###
### 具体代码实现(云效代码study-java项目当中设计模式当中有代码案例)
###
![](https://img.kancloud.cn/f0/ee/f0ee2e56a63a86b97afa9faa6b8593ab_2916x1770.png)
###
![](https://img.kancloud.cn/25/44/2544c55cf9fb34fcd6088dd5fe47e865_3350x1756.png)
###
![](https://img.kancloud.cn/0a/96/0a9655c28bdd0f96a4c1cb71f0a64fbc_3324x1786.png)
###
![](https://img.kancloud.cn/dc/c4/dcc4fea9d13a7541ea1917fafb7cfc74_2926x1814.png)
###
具体如何调用呢?
###
![](https://img.kancloud.cn/f7/b4/f7b4406a88927bdf30a12fbc95174e2e_3266x1760.png)
###
- 设计模式六大原则
- 常见的三大设计模式分类
- 创建型模式之单例模式
- 单例模式之懒汉
- 单例模式之饿汉
- 单例模式之如何选择懒汉饿汉
- 什么情况下使用单例模式
- 创建型模式之工厂模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 创建型模式之原型模式
- 创建型模式之建造者模式
- 结构型模式之适配器模式
- 接口的适配器模式
- 类的适配器模式
- 结构型模式之桥接模式
- 结构型模式之桥接模式和适配器模式的区别
- 结构型模式之装饰器模式
- 结构型模式之代理模式
- 结构模式之外观模式
- 结构模式之享元模式
- 行为模式之策略模式
- 行为模式之模板模式
- 行为模式之观察者模式
- 行为模式之责任链模式
- 行为模式之命令模式
- 行为模式之迭代器模式
- 行为模式之备忘录模式
- 行为模式之状态模式