知识卡片
事件分发中心身兼观察者中介者与处理者管理员三重角色
内容
事件触发框架的EventDispatch同时承担三重角色:观察者模式的观察者——实现update 接收通知;中介者模式的中介者——update内部遍历已注册处理者、匹配事件类型调用exec,是 中介者核心业务;处理者的管理员——处理者须先注册获得认可才能被调度。发散:观察者模式 解决”事件如何被通知到”,中介者模式解决”通知后由谁处理、如何协调”,两者共享同一承载 对象。
参考来源
- 位置:《设计模式之禅(第2版)》第36章《观察者模式+中介者模式》36.1节(源文件:_epub-src/text/part0155.html)
- 结论依据:原文列出`EventDispatch`类的三个职责:"事件的观察者……事件分发者……作为中介者模式的中介者角色,它担当着非常重要的任务——分发事件,并同时协调各个同事类(也就是事件的处理者)处理事件……事件处理者的管理员角色……不是每一个事件的处理者都可以接收事件并进行处理,是需要获得分发者许可后才可以"。
- 原始内容:在类图中,EventDispatch类有3个职责。事件的观察者……事件分发者,作为中介者模式的中介者角色,它担当着非常重要的任务——分发事件,并同时协调各个同事类(也就是事件的处理者)处理事件……事件处理者的管理员角色,不是每一个事件的处理者都可以接收事件并进行处理,是需要获得分发者许可后才可以。