知识卡片

事件分发中心身兼观察者中介者与处理者管理员三重角色

普通读书笔记卡 · 1872.b.8

内容

事件触发框架的EventDispatch同时承担三重角色:观察者模式的观察者——实现update 接收通知;中介者模式的中介者——update内部遍历已注册处理者、匹配事件类型调用exec,是 中介者核心业务;处理者的管理员——处理者须先注册获得认可才能被调度。发散:观察者模式 解决”事件如何被通知到”,中介者模式解决”通知后由谁处理、如何协调”,两者共享同一承载 对象。

参考来源

- 位置:《设计模式之禅(第2版)》第36章《观察者模式+中介者模式》36.1节(源文件:_epub-src/text/part0155.html) - 结论依据:原文列出`EventDispatch`类的三个职责:"事件的观察者……事件分发者……作为中介者模式的中介者角色,它担当着非常重要的任务——分发事件,并同时协调各个同事类(也就是事件的处理者)处理事件……事件处理者的管理员角色……不是每一个事件的处理者都可以接收事件并进行处理,是需要获得分发者许可后才可以"。 - 原始内容:在类图中,EventDispatch类有3个职责。事件的观察者……事件分发者,作为中介者模式的中介者角色,它担当着非常重要的任务——分发事件,并同时协调各个同事类(也就是事件的处理者)处理事件……事件处理者的管理员角色,不是每一个事件的处理者都可以接收事件并进行处理,是需要获得分发者许可后才可以。