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