Using C++
昨天Memory Daily功能应该说就OK了,但到现在才把它融合到LingosHook中,原因很简单--冲突。虽然添加TriggerObject作为Adapter解耦各对象,但TriggerObject设计不周,缺少“被触发事件”的来源数据等信息,导致有些地方触发起来会产生冲突。简单举个例子,删除一个单词,那么在Index和在MemoryDaily对象中删除应该触发一样的操作--在数据库中、Tag、MemoryDaily对象、界面等中删除。但由于不同对象删除方式的不同,比如数据库和某些对象删除只需要ID,而在某些界面删除却需要Word本身,像ListBox对象。这样就导致了冲突的发生,不得不写两个OnWordRemove()触发函数,而且其中调用的流程还不一样,看起来非常不爽,再修改很容易犯错误的。想来,如果在触发时,能传递更多的信息,比如“触发源”等,这样仅需要一个OnWordRemove(),并在其内进行不同调用,应该就可以了。所以,TriggerObject中的函数修改一下可能比较好。
posted on 2010-04-01 00:28 codejie 阅读(273) 评论(0) 编辑 收藏 引用 所属分类: C++ 、轮子精神