当前位置: 首页 > article >正文

装饰器模式decorator

学习笔记,原文链接
https://refactoringguru.cn/design-patterns/decorator

将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为

在这里插入图片描述

在这里插入图片描述

调用过程

当你调用 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)



http://www.kler.cn/a/302895.html

相关文章:

  • 爬虫补环境案例---问财网(rpc,jsdom,代理,selenium)
  • OceanStor Pacific系列 8.1.0 功能架构
  • 随时随地编码:香橙派Zero3上安装Code Server远程开发指南
  • C++编程:利用环形缓冲区优化 TCP 发送流程,避免 Short Write 问题
  • uniapp使用scroll-view下拉刷新与上滑加载
  • HBase理论_背景特点及数据单元及与Hive对比
  • 3. 轴指令(omron 机器自动化控制器)——>MC_HomeWithParameterMC_Move
  • 怎么给DataX的Json配置文件传参
  • java后端请求调用三方接口
  • 【Hot100】LeetCode—763. 划分字母区间
  • C++战列舰小游戏Lv. 1.4版本(半成品)
  • 【STM32实物】基于STM32设计的18650锂电池电量(电压/电流)检测系统——采用电阻分压法、均值滤波及ADC测量—文末工程资料下载
  • 在Linux中从视频流截取图片帧(ffmpeg )
  • 西门子1200/1500PLC什么时候需要设置网关地址
  • TCP全连接队列和tcpdump抓包
  • MinIO【部署 02】Linux集群版本及Windows单机版、单机多目录版、分布式版(cmd启动脚本及winsw脚本分享)
  • 模版方法模式template method
  • CMU 10423 Generative AI:lec3(Learning Large Language Models)
  • vim 安装与配置教程(详细教程)
  • Linux学习-Ansible(二)
  • 解码企业数字化转型的四大核心促因
  • 数据结构加餐:三路划分、自省排序、文件归并排序
  • vue3 使用swiper制作带缩略图的轮播图
  • 视频笔记1
  • Winform实现弹出定时框功能
  • HarmonyOS开发之(下拉刷新,上拉加载)控件pulltorefresh组件的使用