跟我一起学“仓颉”设计模式-组合模式练习题
一、练习题1. 使用组合模式模拟杀毒软件可以对文件夹下的子文件和子文件夹进行杀毒。类图核心代码package DesignPattern.composite import std.collection.* // 抽象构件类 public abstract class File { public func kill(): Unit } // 容器构件类 public class Folder : File { private let files: ArrayListFile ArrayListFile() 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 }二、小结本章为大家详细的介绍了仓颉设计模式中组合模式练习题的内容下一章为大家带来装饰模式的内容。最后创作不易如果大家觉得我的文章对学习仓颉设计模式有帮助的话就动动小手点个免费的赞吧收到的赞越多我的创作动力也会越大哦谢谢大家