C++ 事件機制實現

http://www.cppblog.com/zhuweisky/archive/2005/09/11/193.html

 

 

 事件是面向組件開發的必要特性之一,但C++不直接支持事件,沒關係,我自己實現了一個,感覺很好用,分享給大家!
   最開始打算用函數指針模擬事件,但由於C++中成員函數指針不能和void*相互強轉,而且 typedef中不能含有模板,所以纔不得已以接口繼承實現。這樣效果也不錯 :)


一. 先看看事件接口定義和實現

上面的實現是淺顯易懂的,關鍵是要注意IEventPublisher的雙重身份-- 事件發佈方最好發佈IEvent指針給外部,而該指針實際指向的是一個EventPublisher對象,這是爲了避免外部直接調用IEventActivator接口的方法。

二. 一個定時器類Timer,演示如何發佈事件。想必大家都知道定時器的用途了哦,這個Timer就像C#中的Timer類一樣。

上面的示例清晰地說明了如何發佈一個事件,如何在適當的時候觸發事件,接下來看看如何預定事件。

三. 預定事件例子

 到這裏,已經將C++中的事件機制的實現及使用講清楚了。C#提供了很多便利的基礎設施來支持組件開發,而在C++中,這些基礎設施需要自己動手來構建,在擁有了這些設施之後,相信使用C++進行組件開發會輕鬆一點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章