在客戶端寫了這麼久,總感覺不順暢。我喜歡去改變現有的東西,使其
更易於使用。
縱觀客戶端目前的架構:邏輯子系統、ac、vc、cegui。層層疊疊,原本
一次簡單的cs互動被弄得如此複雜。資料冗餘、結構不清晰。
我的想法大致如下:
一、乾掉邏輯子系統
邏輯子系統的存在,除了將問題搞複雜之外沒有任何好處。這種所謂的
」邏輯子系統「,無非快取乙份資料,而在對應的ac中為了方便使用不得不緩
存其中的部分資料,對於ac沒有快取的資料,還不得不呼叫介面去獲取,而
獲取介面的方式又是五花八門,亂糟糟。
二、ac與vc之間共享資料通過類繼承的方式實現
乾掉了邏輯子系統,我選擇將資料快取至ac中,同時有ac去派生出vc。
ac基類僅負責資料快取、重新整理,vc提供介面相關控制。這樣vc就能非常方便
的獲取自己所需的資料,而不用ac將資料主動設定到vc中。同時,vc對資料
的影響很直接,不用通過獲取ac指標、呼叫ac介面去主動設定。
三、對基礎物件的抽象更加徹底
// 根類
class object
virtual(){}
//...
private:
std::wstring _name; }
// 事件
class eventset{}//...
// 通訊
class network{} //...
// 擁有事件的物件
class eventedobject : public object, public eventset
// 可收發包的物件
class networkobject{}//...
等等,將這些基本物件抽象出來,根據需要最輕量派生具體的功能
模組類。
目前的思考就這些,抽空再想。
客戶端架構介紹
這篇文章寫得比較中坑 記錄下 整個客戶端大體上是分為frame和game兩大部分.frame為框架層,通用於所有專案.game是遊戲層,只能寫當前專案才會用到的 frame 說是通用於所有專案有點誇大了,畢竟遊戲型別太多了,商業遊戲引擎都不敢說通用於所有遊戲,但這確實是這部分設計的初衷.其實這部分就...
關於胖客戶端
目前his系統由於業務複雜,要進行大量的運算,而且his系統在執行一段時間後,資料量激增,資料庫占用空間增長很快,導致his投入執行一兩年後,反應速度急遽下降,在進行乙個簡單的儲存或刪除業務時都要花較長時間,甚至讓使用的醫務人員也難以忍受,這時就應該考慮採用胖客戶端了。所謂胖客戶端,這裡是指將常用的...
關於胖客戶端
目前his系統由於業務複雜,要進行大量的運算,而且his系統在執行一段時間後,資料量激增,資料庫占用空間增長很快,導致his投入執行一兩年後,反應速度急遽下降,在進行乙個簡單的儲存或刪除業務時都要花較長時間,甚至讓使用的醫務人員也難以忍受,這時就應該考慮採用胖客戶端了。所謂胖客戶端,這裡是指將常用的...