🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 装饰器模式 ### 也叫包装模式,它是作为现有的类的一个包装,允许向一个现有的对象添加新的功能,同时不改变其结构。 ### 给对象增加功能,一般两种方式继承或者关联组合,**将一个类的对象嵌入到另一个对象中,由另外一个对象来决定是否调用嵌入对象的行为来增强功能,这个就是装饰器模式,比继承模式更加灵活** ### **以动态、透明的⽅式给单个对象添加职责,但⼜能不改变其结构** ### ![](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) ###