關於客戶端架構的思考

2021-09-30 09:28:08 字數 992 閱讀 3756

在客戶端寫了這麼久,總感覺不順暢。我喜歡去改變現有的東西,使其

更易於使用。

縱觀客戶端目前的架構:邏輯子系統、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投入執行一兩年後,反應速度急遽下降,在進行乙個簡單的儲存或刪除業務時都要花較長時間,甚至讓使用的醫務人員也難以忍受,這時就應該考慮採用胖客戶端了。所謂胖客戶端,這裡是指將常用的...