实现思路
背景
项目使用观察者模式实现事件抛出与监听
- 事件抛出
- 事件监听回调
- 同步调用
- 事件调用链出错非阻断
缺陷
该有的缺陷都有
- 观察者模式缺陷,容易复杂化,当同一实例既是观察者,又是被观察者时会极大增加维护复杂度
- 同步调用缺陷,会造成性能障碍,当调用链某一处耗时较长,整个调用链后面需要等待,造成较长等待
- 解决:增加一种异步调用链方式,由使用者选择,因为可能前后调用有依赖关系
功能上缺失
- 时序依赖,未实现事件调用链中顺序问题
- 思路一,通过注册顺序依次调用
- 思路二,注册时候增加排序信息
- 时间控制,未实现控制时间,现事件抛出时间由第三方控制
- 解决思路:在事件系统中嵌入时间,可以控制事件抛出时间
游戏中事件系统思考
原文:https://www.cnblogs.com/longguoxv/p/13749023.html