目录

一、练习题

二、小结


一、练习题

1. 老鼠探出头,猫开始追赶老鼠,模拟猫和老鼠中这一经典的画面。

类图

核心代码

package DesignPattern.observer

// 抽象观察者
public interface IObserver {
    func run(target: Target): Unit
    func getName(): String
}

// 抽象目标
public abstract class Target {
    public Target(public let name: String) {}
    protected func notify(observer: IObserver): Unit
}

// 具体目标
public class Jerry <: Target {
    public init() {
        super("Jerry")
        println("[${name}] 探出了头!")
    }

    protected override func notify(observer: IObserver) {
        println("[${observer.getName()}] 发现了 [${this.name}]!")
    }
}

// 具体观察者
public class Tom <: IObserver {
    private let name = "Tom"
   
    public override func run(target: Target) {
        target.notify(this)
        println("[${this.name}] 狂追 [${target.name}]!")
    }

    public override func getName() {
        return this.name
    }
}

测试代码

package DesignPattern
import DesignPattern.observer.*

main(): Int64 {
    let tom = Tom()
    tom.run(Jerry())
    return 0
}

二、小结

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

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐