装饰器模式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)
相关推荐
常某某的好奇心7 天前
装饰模式(Decorator Pattern)
装饰器模式
lczdyx16 天前
从Flask到智能体:装饰器模式在AI系统中的架构迁移实践
人工智能·python·语言模型·架构·flask·装饰器模式
星星点点洲18 天前
【设计模式区别】装饰器模式和适配器模式区别
设计模式·适配器模式·装饰器模式
程序员JerrySUN1 个月前
设计模式每日硬核训练 Day 12:装饰器模式(Decorator Pattern)完整讲解与实战应用
设计模式·装饰器模式
aiden:)1 个月前
星巴克咖啡下单系统:UML 类图解析与代码实现
设计模式·软件工程·uml·装饰器模式
〆、风神1 个月前
装饰器模式与模板方法模式实现MyBatis-Plus QueryWrapper 扩展
mybatis·装饰器模式·模板方法模式
qq_529835351 个月前
装饰器模式:如何用Java打扮一个对象?
java·开发语言·装饰器模式
搞不懂语言的程序员1 个月前
装饰器模式详解
开发语言·python·装饰器模式
NorthCastle2 个月前
设计模式-结构型模式-装饰器模式
设计模式·装饰器模式
lina_mua2 个月前
前端开发中的设计模式:装饰器模式的应用与实践
设计模式·装饰器模式