我正在考慮在我們的內部錯誤跟蹤和時間記錄系統中添加一些成就。它連接到SQL Server後端。向業務級軟件添加成就的技巧
起初我以爲,該系統可以在數據庫上運行,使用觸發器,例如,知道什麼時候:
- 你登錄千小時 1000票
- 關閉你自己的票
- 工作了一段時間以來一直沒有觸及的票。
- 等(你知道 - 數據庫十歲上下的東西)
但後來我意識到,我也想純粹前端achivements
- 使用abiltiy
- 排序高級搜索按列
- 重置設置爲默認值
- 搜索500次
看來每個成就的邏輯必須是手工編碼的。任何人都可以想象某種成就規則引擎,你爲例如創建腳本?
以及如何存儲它們?如果成績是:
- 更改列的排序順序在一個會話
50倍,將意味着他們每次排序列表視圖列它更新數據庫。
有關此Win32應用程序設計問題的任何想法?我不認爲Gang of Four有成就設計模式。
注:這是一個Win32客戶端應用程序,而不是一個網站。
我非常喜歡事件系統的想法。用戶需要能夠通過一個單一的事件觸發對象引發事件的各種操作:
protected void TimeEntriesListView_ColumnSort(object sender, EventArgs e)
{
_globalListener.RaiseEvent(EventType.ListViewColumnSort, sender, e);
}
protected void TimeEntriesListView_ColumnDrag(object sender, EventArgs e)
{
_globalListener.RaiseEvent(EventType.ListViewColumnDrag, sender, e);
}
這個對象就可以有邏輯添加到它決定它要數它的事件。但更合理的是,各種事件監聽器可以附加到中央事件監聽器,並具有他們的自定義成就邏輯。
我確定喜歡事件系統的想法。 – 2008-11-07 19:46:31