装饰器模式decorator

学习笔记,原文链接

https://refactoringguru.cn/design-patterns/decorator

将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为

调用过程

dart 复制代码
当你调用 encoded.writeData(salaryRecords); 时,控制流首先进入 CompressionDecorator 的 writeData 方法。

在 CompressionDecorator 的 writeData 方法中,调用 super.writeData(compressedData);。这意味着调用的是 DataSourceDecorator 的 writeData 方法。

在 DataSourceDecorator 的 writeData 方法中,执行 wrappee.writeData(data);,这里的 wrappee 是 EncryptionDecorator 的实例。

控制流转到 EncryptionDecorator 的 writeData 方法:

EncryptionDecorator 的 writeData 方法将加密后的数据传递给它的父类 DataSourceDecorator。

最后,在 DataSourceDecorator 中,调用 wrappee.writeData(encryptedData);,这里的 wrappee 是 FileDataSource 的实例,最终将加密后的数据写入文件。
复制代码
总结


![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b066595e4cee480bad7f867318ffedf5.png)
相关推荐
资生算法程序员_畅想家_剑魔11 分钟前
Java常见技术分享-10-装饰器模式
java·开发语言·装饰器模式
世洋Blog5 天前
装饰器模式实践:告别臃肿的继承链,优雅解耦初始化状态管理
unity·设计模式·c#·装饰器模式
qq19226385 天前
基于NSGA2的多目标车辆路径规划 目标1为受灾点缺货量最大值最小,目标2为需求点最晚送达时间最小
装饰器模式
syt_10135 天前
设计模式之-装饰器模式
设计模式·装饰器模式
清水白石0085 天前
《Python 装饰器模式与代理模式深度剖析:从语法技巧到架构实战》
python·代理模式·装饰器模式
ZouZou老师15 天前
C++设计模式之装饰器模式:以家具生产为例
c++·设计模式·装饰器模式
__万波__17 天前
二十三种设计模式(八)--装饰器模式
java·设计模式·装饰器模式
老鼠只爱大米24 天前
Java设计模式之装饰器模式详解
java·设计模式·装饰器模式·decorator·java设计模式
兵bing1 个月前
设计模式-装饰器模式
设计模式·装饰器模式
IT永勇1 个月前
C++设计模式-装饰器模式
c++·设计模式·装饰器模式