装饰器模式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)
相关推荐
卷福同学3 天前
设计模式3:代理、适配器、装饰器模式
设计模式·装饰器模式
ox00804 天前
C++ 设计模式-装饰器模式
c++·设计模式·装饰器模式
FLZJ_KL4 天前
【设计模式】【结构型模式】装饰者模式(Decorator)
java·设计模式·装饰器模式
_DCG_1 个月前
c++常见设计模式之装饰器模式
c++·设计模式·装饰器模式
等一场春雨1 个月前
Java设计模式 十 装饰模式 (Decorator Pattern)
java·设计模式·装饰器模式
xweiran1 个月前
装饰器模式详解(附代码案例和源码分析)
java·装饰器模式·io流·代码案例
计算机小混子1 个月前
C++实现设计模式---装饰器模式 (Decorator)
c++·设计模式·装饰器模式
游客5201 个月前
设计模式-结构型-装饰器模式
python·设计模式·装饰器模式
博一波1 个月前
【设计模式-结构型】装饰器模式
java·设计模式·装饰器模式
JINGWHALE12 个月前
设计模式 结构型 装饰器模式(Decorator Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·装饰器模式