|
原帖由 hjack 于 2008-4-11 01:46 发表 
多个用户可以对同一event进行register,也就是一对多的依赖关体系.
当"一"发生变化, 多个对此event感兴趣的user都将要有所行动.
应该是适用observer模式的场景了:
可以考虑以下方式:- class Event{
- private:
- string type;
- //other common info of event
- //继承时可以添加更多的信息
- }
- class CallBack{
- //包含一个被回调的函数,只有一个Event&类型的参数
- }
- template
- class Dispatcher{//被监听者的父类
- public:
- map < string,T > listeners;
- public:
- void register(Event&,T&)const=0;
- void dispatch(Event &);//发布事件,使所有绑定该事件的CallBack都调用某个函数(可以是普通函数也可以是重载了的()运算函数)
- }
复制代码
[ 本帖最后由 iptton 于 2008-4-11 11:46 编辑 ] |
|