1.一种通过事件总线分发事件的方法,其特征在于,包括以下步骤:事件发布者发布事件;
事件总线分析所发布的事件,获取事件参数,并根据该事件参数获取预先分类好的、对应该事件的事件处理函数集合,直接通过事件的名称找到该事件的事件处理函数集合,该事件处理函数集合中包含处理该事件的所有事件处理函数,且每个事件处理函数对应一个事件订阅者;
执行该事件处理函数集合中的事件处理函数,将事件分发给事件订阅者:该方法还包括步骤:事件订阅者预先进行注册;
根据事件订阅者注册的信息对事件进行分类,得到各事件的事件处理函数集合,具体为:事件总线根据注册信息获取订阅事件的事件处理函数,并生成该事件订阅者的事件方法集合listEventMethod,该事件方法集合listEventMethod中包含该事件订阅者所有订阅事件的事件处理函数;
所有事件订阅者的事件方法集合汇总为总事件订阅集合allListEventMethod;
遍历总事件订阅集合allListEventMethod,根据事件类型进行分类,得到各个事件的事件处理函数集合。
2.根据权利要求1所述的方法,其特征在于,步骤“遍历总事件订阅集合allListEventMethod,根据事件类型进行分类,得到各个事件的事件处理函数集合”具体为:使用for循环语句遍历总事件订阅集合allListEventMethod中的每一个元素,每个元素均表示事件的处理函数,每次获取其中一个元素;
通过获取的每一个元素得到其中所包含的事件参数信息;
根据事件参数信息中的事件类型对总事件订阅集合allListEventMethod进行分类,得到各个事件的处理函数集合。
3.根据权利要求1所述的方法,其特征在于,事件订阅者存在优先级,优先级高的事件订阅者可取消事件订阅并继续向优先级低的事件订阅者分发。
4.一种通过事件总线分发事件的系统,其特征在于,包括:
事件发布模块,用于事件发布者发布事件;
事件分析模块,用于通过事件总线分析所发布的事件,获取事件参数,并根据该事件参数获取预先分类好的、对应该事件的事件处理函数集合,该事件处理函数集合中包含处理该事件的所有事件处理函数,且每个事件处理函数对应一个事件订阅者;
事件分发模块,用于通过事件总线分发事件,具体为执行该事件处理函数集合中的事件处理函数,将事件分发给事件订阅者;
该系统还包括:
注册模块,用于事件订阅者预先进行注册;
事件处理函数集合生成模块,用于根据注册的信息对事件进行分类得到各事件的事件处理函数集合,所述事件处理函数集合生成模块具体包括:事件订阅者的事件方法集合生成模块,用于通过事件总线生成事件订阅者的事件方法集合,具体为事件总线根据注册信息获取订阅事件的事件处理函数,并生成该事件订阅者的事件方法集合listEventMethod,该事件方法集合listEventMethod中包含该事件订阅者所有订阅事件的事件处理函数;
总事件订阅集合生成模块,用于生成总事件订阅集合allListEventMethod,该总事件订阅集合allListEventMethod包含所有事件订阅者的事件方法集合;
事件分类模块,用于遍历总事件订阅集合allListEventMethod,根据事件类型进行分类,得到各个事件的事件处理函数集合。