游戏设计模式学习笔记(4)观察者模式
参考:
《设计模式与游戏完美开发》
《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)
《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)
【游戏设计模式】浅墨_毛星云: https://blog.csdn.net/poem_qianmo/article/details/53240330
定义
- 定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
- 目前广泛使用的MVC模式,究其根本,是基于观察者模式的。
类图,时序图
观察者模式包含如下角色:
- Subject: 主题接口,让观察者通过接口方法,订阅、退订主题。主题更新时,通知所有观察者
- ConcreteSubject: 具体主题,实现主题内容及更新
- Observer: 观察者接口,提供更新通知方法
- ConcreteObserver: 具体观察者,针对主题的更新,按需求获取更新状态。
应用场景
- 事件系统。
- C# 的event。