|
本来LCL库的事件机制是很好的,但是过分依赖事件机制,就会使得代码的BUG会比较多。
我们知道DOS环境的程序编写,都是基于过程的,而到了Windows系列后,都是基于事件机制。
操作系统发送给我们的程序的事件,就触发某个回调函数。
形象点,我们的GUI程序都是基于操作系统的消息的回调函数。这样的编程风格比起DOS环境编程本来就已经
复杂了很多了,我们在编写的时候,无法预知用户下一步操作是什么,会不会导致问题。
VCL, LCL这样的库将这种事件机制进行了进一步的扩展,使得基于事件(Event)的编程更加复杂化了,
比如TDataset 的 afterScrool 实际上,操作系统是没有发送类似的事件给我们的程序的,是框架提供了
这种回调接口,这种事件是一种用户自定义事件(Custome Event) , 这种扩展的好处是充分利用了框架
提供的强大模版类,如果要编写好GUI程序,我们就必须熟悉自定义事件是如何发生的,他和其他事件发生
的顺序是怎样的,否则程序会发生很多错误。
坏处就是我们的代码被分散了,比如在 beforePost里面写验证代码,实际上
我们可以在程序的保存逻辑里面进行验证,可以让程序逻辑更加清晰,易读。
所以,我们可以根据情况适当使用这种机制,而不是大量依赖这样的机制进行编程。
|
|