事件注册机制

  研究了下CEGUI的源码,感性的说很漂亮,很舒服,结构清晰,self-explain。我对界面研究不多,我就是被CEGUI的强大功能和漂亮代码“诱惑”进来的。重点看了下事件注册机制的实现,发现和我实现的服务器端的事件注册机制很相似,理解起来很容易,基本思路就是事件处理,事件注册者,事件发生者,三个角色清晰分工。当然CEGUI比我的代码更灵活,我是把每个事件处理封装成仿函数,注册事件的存储也包括了注册者的引用,CEGUI是存储的成员函数,这样就是存储一个函数指针和一个对象引用。我本来还担心我的析构函数完成事件注册清除有点不规范的设计,没想到CEGUI的设计也是如此,心里踏实多了。它把事件触发时的参数封装了,这个值得借鉴,我的设计是没有办法传的,只传了一个事件ID。CEGUI使用了大量的STring,事件也是用名字表示,没有枚举,当然它实现了一个高效的String。
 

你可能感兴趣的:(技术总结)