跟我一起学“仓颉”设计模式-组合模式练习题
本章为大家详细的介绍了仓颉设计模式中组合模式练习题的内容。
·
目录
一、练习题
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
}
二、小结
本章为大家详细的介绍了仓颉设计模式中组合模式练习题的内容,下一章,为大家带来装饰模式的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉设计模式有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)