装饰器模式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)
相关推荐
pointers_syc16 天前
【设计模式】4.装饰器模式
设计模式·装饰器模式
找不到、了23 天前
Java设计模式之<装饰器模式>
java·设计模式·装饰器模式
未既1 个月前
java设计模式 -【装饰器模式】
java·设计模式·装饰器模式
贱贱的剑1 个月前
6. 装饰器模式
设计模式·装饰器模式
饕餮争锋1 个月前
设计模式笔记_结构型_装饰器模式
笔记·设计模式·装饰器模式
engchina1 个月前
Python设计模式深度解析:装饰器模式(Decorator Pattern)完全指南
python·设计模式·装饰器模式
里探2 个月前
Django中为api自定义一些装饰器:如参数校验等
python·django·装饰器模式
charlie1145141912 个月前
从C++编程入手设计模式——装饰器模式
c++·设计模式·装饰器模式
Dave_Young2 个月前
上位机开发中的设计模式(3):装饰器模式
设计模式·装饰器模式
颯沓如流星2 个月前
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
java·重构·装饰器模式