实用 AI

可在线运行 AI 集合,涵盖 AI 文案生成、写作辅助、AI 绘图与照片修复、AI 配音、字幕生成、语音转录以及 AI 视频创作和数字人等多种 AI 服务

查看详情

观察者模式

软件设计模式
2022-07-12 14:47 · 阅读时长3分钟
小课

观察者模式常用于多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都能得到通知并被自动更新。观察者模式又被称为发布-订阅模式、模型-视图模式,它是一种行为型模式。

下面实现一个简单的观察者模式,首先定义Subject和Observer接口。

加载中...

Subject接口定义了注册观察、取消观察和通知所有观察者的方法,Observer接口定义了更新方法,当被观察者更新时会触发回调该方法,下面是具体的实现类MySubject和MyObserver。

加载中...

当被观察者msg信息有更新时,会在处理完后调用notifyObservers方法通知所有的观察者,并调用其update方法来更新状态。

总结

观察者模式符合开闭原则,无需修改观察者或被观察者的相关代码即可新增观察者,另外在以上实现中,观察者和被观察者是抽象依赖,符合依赖反转原则。

设计模式观察者模式Observer