装饰器模式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·python·设计模式·组合模式·装饰器模式·外观模式
好好学习++12 天前
【HF设计模式】03-装饰者模式
java·c++·设计模式·装饰器模式
shi578312 天前
设计模式之 装饰器模式 C# 范例
设计模式·c#·装饰器模式
Jack_abu13 天前
设计模式学习之——装饰者模式
设计模式·装饰器模式
FHKHH18 天前
装饰器模式(Decorator Pattern)
c++·设计模式·装饰器模式
夜空晚星灿烂18 天前
C#设计模式--装饰器模式(Decorator Pattern)
设计模式·c#·装饰器模式
sniper_fandc19 天前
装饰器模式
java·设计模式·装饰器模式
LightOfNight1 个月前
【设计模式】创建型模式之装饰器模式(组成、步骤、优缺点、场景)
设计模式·golang·装饰器模式
机器视觉知识推荐、就业指导1 个月前
C++设计模式:装饰器模式 (Decorator) (咖啡订单系统)
开发语言·c++·设计模式·装饰器模式
萨达大1 个月前
23种设计模式-装饰器(Decorator)设计模式
java·c++·设计模式·软考·装饰器模式·软件设计师·结构型设计模式