写在前面
在看一个商业源码的时候,突然发现有一个EventDispatcher类,而且这个类异常庞大,职责就是把这个项目的全部事件都在里面声明。看着那么高大上的事件分发中心,我也只能马上加到我的项目里面来提升一下逼格了。
知识准备
首先是这个事件分发中心的知识,就是用事件和委托来实现方法的回调。那么什么是事件呢,事件和委托又有什么剪不断理还乱的关系呢???
delegate:委托,c#中的代理和c++的函数指针很像,如果熟悉c++的话应该很容易理解,c#用代理的形式实现了函数指针,但是delegate的功能要多很多,比如,delegate确保回调方法是类型安全的。delegate就是一个类,c#通过委托来提供回调函数机制
event:事件,事件在代理模型上添加了一层保护,如下面的例子,levelUp是一个代理,le