事件中心的作用,可以构造一种经典的“通知”,“处理”模型,处理器通过订阅来感知事件,事件发布器通过准备参数和事件名称来广播事件。这样事件发布器就可以只关注事件流,比如这件事儿处理完了,就该那件事儿,而不用在开始设计的时候就关心应该怎么处理。完成了一种思维上的解藕。
Go的不定参数函数,比别的语言来的简单,函数的反射也比较容易,至于为什么要用反射,主要是泛化,为什么要用不定参也是因为泛化,只是一个在类型层面,一个在数量层面。
看一下实现:
逻辑部先定义这三个接口,分别用作订阅,发布和发布前的判断
数据部分定义两个类型,eHandle和ECenter,分别用来存泛化的函数,以及调用时用到的互斥。