有了訊息格式作為基礎,就可以實現半結構化訊息解析器和介面networkobserver了。通訊層和框架之間的networkobserver介面顯然是使用了observer設計模式。
我們先來看它的實現類定義:
class networkobserverimpl : public networkobserver
;預設實現類networkobserverimpl包含乙個半結構化訊息解析器指標,根據當前系統使用的是xml訊息格式還是二進位制訊息格式,該指標指向不同的單例物件:
networkobserverimpl::networkobserverimpl()
根據圖2-2,我們可以畫出networkobserverimpl::onmessage()實現函式的序列圖:
圖2-4 networkobserverimpl::onmessage()序列圖
networkobserverimpl的各個函式的實現**如下所示:
void networkobserverimpl::onmessage(usermsgsmartptr pusermsg, communicationunitid unitid)
void networkobserverimpl::onlinkdown(communicationunitid unitid)
void networkobserverimpl::onlinkup(communicationunitid unitid)
networkobserversmartptr networkobserver::createobserver()
配合圖2-2,這些函式實現還是很容易理解的。
基於訊息驅動的物件導向通用C S應用框架 八
不論使用二進位制訊息格式還是文字訊息格式例如xml訊息,訊息分發框架都是建立在固定的訊息頭內容的基礎之上的,因為只要解析出訊息頭就完全可以進行訊息分發了。一般來說,訊息頭至少包含以下內容 訊息型別 訊息id 訊息序列號。為了滿足將來業務功能的擴充套件需要 比如可令伺服器作為乙個訊息 中心,將某些前台...
C S 物件導向的程式設計概念理解
物件導向的程式設計 物件導向的程式設計 為了能更加直接地描述客觀世界中存在的事務以及它們之間的關係。是不是難以理解。這個困難的東西先掛會,一會解答。何為物件?物件 客觀現實世界在人腦中的反映,作為一種概念而存在,通俗點舉個例子,就是現實世界真實存在的事務,有形的如乙個人,無形的如乙份計畫。所有的事物...
物件導向和基於物件的區別
很多人沒有區分 物件導向 和 基於物件 兩個不同的概念。物件導向的三大特點 封裝,繼承,多型 卻一不可。通常 基於物件 是使用物件,但是無法利用 現有的物件模板產生新的物件型別,繼而產生新的物件,也就是說 基於物件 沒有繼承的特點。而 多型 表示為父類型別的子類物件例項,沒有了繼承的概念也 就無從談...