装饰器模式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)
相关推荐
捕鲸叉2 天前
C++设计模式之适配器模式与桥接模式,装饰器模式及代理模式相似点与不同点
设计模式·桥接模式·适配器模式·装饰器模式
Miqiuha5 天前
装饰器设计模式学习
java·学习·装饰器模式
南城花随雪。7 天前
Spring框架之装饰者模式 (Decorator Pattern)
java·开发语言·装饰器模式
编程、小哥哥7 天前
设计模式之装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
java·设计模式·装饰器模式
吾与谁归in8 天前
【C#设计模式(10)——装饰器模式(Decorator Pattern)】
设计模式·c#·装饰器模式
编码熊(Coding-Bear)18 天前
设计模式之结构型模式---装饰器模式
android·java·设计模式·装饰器模式
G皮T19 天前
【设计模式】结构型模式(一):适配器模式、装饰器模式
java·设计模式·适配器模式·装饰器模式·decorator·adapter·结构型模式
无敌岩雀20 天前
C++设计模式结构型模式———装饰模式
c++·设计模式·装饰器模式
小白23 天前
C# 结构型设计模式----装饰器模式
设计模式·装饰器模式
程序猿阿伟23 天前
《C++中的魔法:实现类似 Python 的装饰器模式》
java·c++·装饰器模式