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

跟我一起学“仓颉”设计模式-组合模式练习题

一、练习题

1. 使用组合模式模拟杀毒软件,可以对文件夹下的子文件和子文件夹进行杀毒。

类图

核心代码

package DesignPattern.composite import std.collection.* // 抽象构件类 public abstract class File { public func kill(): Unit } // 容器构件类 public class Folder <: File { private let files: ArrayList<File> = ArrayList<File>() public Folder(private let name: String) {} public override func kill() { println("正在查杀 ${this.name} 文件夹下的病毒") for (file in files) { file.kill() } } public func add(file: File) { this.files.add(file) } public func getChild(index: Int64): File { return this.files[index] } } // 叶子构件类 public class TextFile <: File{ public TextFile(private let name: String) {} public override func kill() { println("查杀 ${this.name} 文件的病毒中") } } public class ImageFile <: File{ public ImageFile(private let name: String) {} public override func kill() { println("查杀 ${this.name} 文件的病毒中") } }

测试代码

package DesignPattern import DesignPattern.composite.* main(): Int64 { let folder = Folder("学习资料") folder.add(TextFile("仓颉编程语言.docx")) folder.add(ImageFile("仓颉设计模式.pdf")) folder.add(TextFile("ArkTS从入门到出口.docx")) let folder2 = Folder("不可告人的秘密") folder2.add(TextFile("仓颉中不可告人的秘密.docx")) folder2.add(ImageFile("你绝对想象不到的鸿蒙真面目.pdf")) folder.add(folder2) folder.kill() return 0 }

二、小结

本章为大家详细的介绍了仓颉设计模式中组合模式练习题的内容,下一章,为大家带来装饰模式的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉设计模式有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

http://www.gsyq.cn/news/1490865.html

相关文章:

  • 别再到处找教程了!手把手教你用Astra SDK v2.1.2在Ubuntu 18.04上跑通第一个深度图程序
  • 3分钟上手k8s-csi-s3:从安装到使用的快速入门教程
  • AI驱动的大型代码重构:Cursor如何实现意图驱动式重构
  • 量子鲁棒控制理论与误差极限分析
  • YS-X4X4V2X4PGEMINI-M-S无人机Windows地面站工具包(中英双语+Google地图集成)
  • 数据社区即服务(DCaaS):数据从业者的职业加速器
  • 别再只配环境变量了!PyInstaller打包exe时Tcl报错的深层原因与一劳永逸的解法
  • 2026Q2上海ESD防静电通道闸实测评测:浙江通道闸门禁、浙江防静电门禁闸机、浙江静电检测闸机、浙江静电测试闸机选择指南 - 优质品牌商家
  • VideoFusion完整教程:10分钟掌握开源视频批量处理神器
  • 通过复杂指令测试AI(元宝)对icef认知框架的动态加载(互联网加载)和icef动态自更新后进行分析一体化测试,案例:分析蚂蚁与真菌的共生演化机制
  • HsMod:基于BepInEx的炉石传说深度定制框架
  • 终极指南:使用JBZoo/Utils快速检测PHP环境和监控系统信息 [特殊字符]
  • 免费彩色表情字体EmojiOne Color:让你的设计瞬间“活“起来的终极指南
  • K210+240*240分辨率数据集制作:从自动拍照脚本到VOTT标注一条龙
  • 如何探索云音乐歌词提取的智能解决方案
  • 告别‘php不是命令’:用PHPStudy一键配置环境变量的隐藏技巧与原理
  • 跟我一起学“仓颉”设计模式-原型模式练习题
  • 2026河北混合型塑胶跑道专业服务商排行及能力解析:河北预制型塑胶跑道/硅pu学校篮球场/硅pu排球场/硅pu材料/选择指南 - 优质品牌商家
  • 别再让亚稳态坑你!FPGA跨时钟域(CDC)单bit信号处理的3个实战避坑指南
  • 2026年喷雾干燥机技术解析与靠谱品牌实测对比:旋转闪蒸烘干机/桨叶干燥机/气流烘干机/流化床干燥机/滚筒刮板烘干机/选择指南 - 优质品牌商家
  • OBS Studio:为什么这款免费开源软件成为专业直播的终极选择?
  • 中山黄金回收实测:6大门店横向对比(附地址与变现避坑指南) - 润富黄金回收
  • SeetaFaceEngine2 Android开发实战:移动端人脸识别应用开发指南
  • 批量读取本地CSV文件的7种工程化方案
  • 2026临沂漏水检测电话-消防/管道测漏/自来水管道漏水检测/电缆故障检测|本地靠谱商家口碑推荐 - 资讯热点
  • Java学习收藏夹吃灰?这份「按部就班」的学习路径,小白也能轻松掌握大模型核心技术!
  • 工业级多维聚合:pandas生产环境五大实战模式
  • Facebook级机器学习AB测试架构实战解析
  • 农药消泡剂实测评测:聚醚消泡剂/造纸消泡剂/金属加工消泡剂/食品消泡粉/农药消泡剂/发酵消泡剂/工业消泡剂/有机硅消泡剂/选择指南 - 优质品牌商家
  • 业务指标驱动的机器学习落地方法论