星期四, 7月 19, 2007

利用C++ Functor實現.Net的delegant/event



在C++中實現.NET風格的委託-開發者網路-C++-天極Yesky

CALLBACKS IN C++ USING TEMPLATE FUNCTORS

http://www.codeproject.com/cpp/#Delegates

A new way to implement Delegate in C++

最近為了一些原因,又得重新再檢視一次Design Pattern。

大多的Patterns我已經是滾瓜爛熟的.... 但是說真的每一個Pattern都有在用嗎?

其實我也覺得沒那麼常用~~ 有些Pattern知道十分強大,但是實作起來就沒那麼方便 或是真的很麻煩....


這次又重看一次Observer...... 很常見的Pattern,但是C++ implement起來就是得繼承來繼承去

但是近一年來我都是用C#,我用C#的event/delegant可以很輕易的不用繼承解決Observer的東西

於是我重回到C++思考.....  想到之前有人跟我說functor的概念~~~ 我一直以為就是function object

就是在STL裡 能夠customize 不用演算法的行為~~ 這樣的作法已經很厲害了....


沒想到Functor的確可以實現出類似C# event/delegant的概念~~~

所以貼上來給大家參考一下 :-)

(第二篇是1994年寫的.....也太神奇了~~ 那些code VC6有辦法compile嗎? 我到2007才準備開始用..)


沒有留言: