知识卡片
产品事件处理者三层独立扩展的架构验证
内容
事件触发框架叠加工厂方法(产生产品)、原型(克隆产品)、桥梁(产品与事件两条 独立继承体系)、观察者(通知)、中介者(分发协调)五个模式,验证产品、事件、处理者 三层可各自独立扩展。案例用乞丐/平民/贵族三种处理者演示:新增处理者只需继承 EventCustomer、声明能处理的事件类型、实现exec并注册,不改动其他类。发散:新增产品 类型需先把Product/ProductEvent抽象化再扩展。
参考来源
- 位置:《设计模式之禅(第2版)》第36章《观察者模式+中介者模式》36.1-36.2节(源文件:_epub-src/text/part0155.html, part0156.html)
- 结论依据:原文总结"我们的事件处理框架已经生效了,有行为,就产生事件,并有处理事件的处理者,并且这三者都相互解耦,可以独立地扩展下去。比如,想增加处理者,没有问题,建立一个类继承EventCustomer,然后注册到EventDispatch上,就可以进行处理事件了;想扩展产品,没问题?需要稍稍修改一下,首先抽取出产品和事件的抽象类,然后再进行扩展即可",并用乞丐/平民/贵族三个处理者的运行结果验证。
- 原始内容:我们的事件处理框架已经生效了,有行为,就产生事件,并有处理事件的处理者,并且这三者都相互解耦,可以独立地扩展下去。比如,想增加处理者,没有问题,建立一个类继承EventCustomer,然后注册到EventDispatch上,就可以进行处理事件了;想扩展产品,没问题?需要稍稍修改一下,首先抽取出产品和事件的抽象类,然后再进行扩展即可。