1. 程式人生 > >棋牌遊戲服務器架構: 詳細設計(一) 內核設計

棋牌遊戲服務器架構: 詳細設計(一) 內核設計

att 固定 但是 aar ase servers 比較 獲取 emp

內核的幾個組件被設計成Service,也就是說這幾個模塊都要實現如下接口:

技術分享

圖1 IService接口

Start方法用來啟動服務。

Stop 方法用來關閉服務。

IsService 方法用於查詢當前服務是否正在工作。

內核中的幾個Service都不能夠直接創建,Applications在使用這些Service的時候首先要得到一個IServiceMgr的實例,這被實現成了一個另類地單例模式。IServiceMgr的接口定義如下:

技術分享

圖2 IServiceMgr接口

IServiceMgr提供兩類接口:

1) 獲取Service的接口,這樣直接得到具體的Service,是因為內核的Service比較固定。沒有必要用GetService(strServiceName)這種方法。

GetAsyncService 返回AsyncService的實例

GetDBService 返回DatabaseService的實例

GetTCPService 返回TCPServerService的實例

GetTimerService 返回定時器實例

2) 一個靜態的單例方法Instance。它申明在接口層,但是需要在IServiceMgr的實現中去實現它。它返回IServiceMgr的實例。

由於IServiceMgr的實現只是簡單地將IAttemptService,ITCPServerServer, IDatabaseService,ITimerService的實現組合在了一起,所以它的實現不會詳細描述。

1 AsyncService詳細設計

棋牌遊戲服務器架構: 詳細設計(一) 內核設計