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 閱讀(280) 評論(0) 編輯 收藏 引用 所屬分類: C++ 、輪子精神