
一、练习题1. 使用职责链模式模拟军队打仗的下达命令敌人数量小于1000营长下达命令敌人数量小于10000团长下达命令。类图核心代码package DesignPattern.responsibility const NUMBER_1000 1000 const NUMBER_10000 10000 // 抽象处理者 public abstract class Officer { protected var _optOfficer OptionOfficer.None protected let name: String public init (name: String) { this.name name } public func process(number: Int64):Unit public func setOfficer(officer: Officer){ this._optOfficer officer } } // 具体处理者 public class YingZhang : Officer { public YingZhang(name: String) {super(name)} public func process(number: Int64):Unit { if (number 0 number NUMBER_1000) { println(敌人数量: ${number}, 营长: ${this.name}下达作战任务!) } else { match (this._optOfficer) { case Some(officer) officer.process(number) case None println(无营长) } } } } public class TuanZhang : Officer { public TuanZhang(name: String) {super(name)} public func process(number: Int64):Unit { if (number NUMBER_1000 number NUMBER_10000) { println(敌人数量: ${number}, 团长: ${this.name}下达作战任务!) } else { match (this._optOfficer) { case Some(officer) officer.process(number) case None println(无团长) } } } }测试代码package DesignPattern import DesignPattern.responsibility.* main(): Int64 { let tuanzhang TuanZhang(李云龙) tuanzhang.setOfficer(YingZhang(张大彪)) tuanzhang.process(9000) tuanzhang.process(500) tuanzhang.process(45) return 0 }二、小结本章为大家详细的介绍了仓颉设计模式中职责链模式练习题的内容下一章为大家带来命令模式的内容。最后创作不易如果大家觉得我的文章对学习仓颉设计模式有帮助的话就动动小手点个免费的赞吧收到的赞越多我的创作动力也会越大哦谢谢大家