轉(zhuǎn)自:http://blog.csdn.net/dotnet90/archive/2009/05/05/4152401.aspx
基本設(shè)計(jì)概念和處理流程
調(diào)用模型
利用面向?qū)ο笏枷攵鄳B(tài)性,調(diào)用方保存著被調(diào)用方的基礎(chǔ)接口指針(一般稱呼為 鉤子),調(diào)用方直接調(diào)用接口指針里面方法,方法具體實(shí)現(xiàn)邏輯由
該接口的派生類實(shí)現(xiàn).示意圖:

基于事件驅(qū)動(dòng)的數(shù)據(jù)處理模型
為系統(tǒng)功能設(shè)計(jì),需要處理網(wǎng)絡(luò)事件數(shù)據(jù)SocketEvent,數(shù)據(jù)庫(kù)事件數(shù)據(jù)DatabaseEvent,定時(shí)器事件數(shù)據(jù)TimerEvent等,為此建立數(shù)據(jù)隊(duì)列服
務(wù)QueueService,為每一隊(duì)列建立多個(gè)子線程QueueServiceThread處理。數(shù)據(jù)隊(duì)列服務(wù)提供添加事件數(shù)據(jù)方法AddToQueue,設(shè)置數(shù)據(jù)隊(duì)列服務(wù)鉤
子SetQueueServiceSink,讓數(shù)據(jù)隊(duì)列服務(wù)鉤子QueueServiceSink做具體邏輯事件數(shù)據(jù)處理。
示意圖:

再者,根據(jù)網(wǎng)絡(luò),數(shù)據(jù)庫(kù)等特定功能,構(gòu)建網(wǎng)絡(luò),數(shù)據(jù)庫(kù)等管理服務(wù),實(shí)現(xiàn)數(shù)據(jù)隊(duì)列服務(wù)鉤子QueueServiceSink方法,調(diào)度事件數(shù)據(jù)執(zhí)行外部處
理接口,外部處理接口具體由二次開(kāi)發(fā)用戶實(shí)現(xiàn)。示意圖:

事件數(shù)據(jù)設(shè)計(jì)

框架體系設(shè)計(jì)

功能模塊劃分

數(shù)據(jù)隊(duì)列服務(wù)QueueService模塊設(shè)計(jì)
基本設(shè)計(jì)概念
建立一個(gè)內(nèi)存鏈表,保存事件數(shù)據(jù),對(duì)外部提供方法往鏈表添加事件數(shù)據(jù)并通知線程,同時(shí)啟動(dòng)多個(gè)處理線程,從數(shù)據(jù)鏈表里獲取事件數(shù)據(jù),執(zhí)行外部鉤子方法進(jìn)行處理.線程事件通知采用完成端口技術(shù).
類與接口設(shè)計(jì)
接口設(shè)計(jì)

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/dotnet90/archive/2009/05/05/4152401.aspx