VC++, C#, JAVA甚至C++builder的框架对于事件响应和处理都有相似的地方,那就是使用了观察者和被观察者的设计模式。
实现观察者与被观察者设计模式在事件处理上面的应用使得UI和数据的同步得以实现,
在程序里面数据是被观察者,UI是观察者,数据的改变是要相应到UI上;
同样的控件也是被观察者,控件容器是观察者,控件响应的事件需要反映到控件容器上。
一般的方法是将观察者的方法注册到被观察者中,这可以看出C++的回调函数(call back function),在C#中叫做事件(event)和代理(delegate),在JAVA中被叫成event和listener。
参考文献:
C#实现观察者与被观察者设计模式