三層架構(gòu)和普通的web站點(diǎn)的區(qū)別,只在于根目錄下的一個(gè)/class目錄,其結(jié)構(gòu)如下
/class
└──/BLL 存放業(yè)務(wù)邏輯類
└──/Common 存放通用類
└──/DAL 存放單表數(shù)據(jù)訪問(wèn)類
└──/MOD 存放實(shí)體類
└──/MUL 存放多表數(shù)據(jù)訪問(wèn)類
└──class.asp 初始化通用類
這里有2處需要解釋一下的.
第一,數(shù)據(jù)訪問(wèn)類分成了兩個(gè)部分,單表操作和多表操作.
對(duì)于簡(jiǎn)單的系統(tǒng),只是單表操作的數(shù)據(jù)類就可以解決問(wèn)題了.但是要用到三層架構(gòu)的都是復(fù)雜的系統(tǒng),需要進(jìn)行大量的多表操作. 這樣的數(shù)據(jù)庫(kù)操作不能簡(jiǎn)單地歸在某一個(gè)數(shù)據(jù)表下,所以產(chǎn)生了多表數(shù)據(jù)訪問(wèn)類.
多表數(shù)據(jù)訪問(wèn)類的產(chǎn)生和命名,都是以業(yè)務(wù)為核心,例如MUL_Article類,就表示這個(gè)類用于處理以Article為核心的業(yè)務(wù),它可能會(huì)涉及到文章分類,文章留言等等方面的數(shù)據(jù)表,但是核心內(nèi)容仍然是Article.
有了多表數(shù)據(jù)訪問(wèn)類,單表數(shù)據(jù)訪問(wèn)類就不會(huì)那么臃腫凌亂了.
但是同時(shí)引發(fā)了另一個(gè)問(wèn)題:如果某一個(gè)業(yè)務(wù)的數(shù)據(jù)庫(kù)操作特別復(fù)雜,那么針對(duì)這個(gè)業(yè)務(wù)產(chǎn)生的多表數(shù)據(jù)訪問(wèn)類就會(huì)迅速擴(kuò)大起來(lái),而至臃腫不堪.對(duì)這一點(diǎn),仍沒(méi)有比較完美的解決方案.若是簡(jiǎn)單地處理的話,可以分成幾個(gè)子業(yè)務(wù)的多表操作類. 目前我做的系統(tǒng)中尚未需要做到這一層擴(kuò)展,所以沒(méi)有花心思來(lái)完善這一點(diǎn). 有需求的同仁可以對(duì)這里考慮一些好的解決方案.
這就是vbscript不支持繼承的缺憾了.
第二,實(shí)體類的產(chǎn)生
實(shí)體類在創(chuàng)建的時(shí)候,是根據(jù)某一個(gè)數(shù)據(jù)表的結(jié)構(gòu)來(lái)創(chuàng)建的,但是在使用中,往往會(huì)擴(kuò)展一些新的屬性.例如MOD_Article類會(huì)增加文章分類這樣的屬性,用以豐富這個(gè)實(shí)體類的內(nèi)容.
所以實(shí)體類并不是和數(shù)據(jù)表一一對(duì)應(yīng)的,這種靈活度需要把握得到,才能發(fā)揮好它的作用.機(jī)械地用數(shù)據(jù)表和實(shí)體類一一對(duì)應(yīng),往往會(huì)產(chǎn)生大批復(fù)雜而凌亂的實(shí)體類參數(shù).這個(gè)到后面有機(jī)會(huì)進(jìn)行實(shí)例討論
class.asp文件的源代碼如下,其功能大家一看便知道了.
<!--#include file="Common/Con_Convert.html"-->
<!--#include file="Common/Con_Error.html"-->
<!--#include file="Common/Con_Page.html"-->
<!--#include file="Common/Con_Data.html"-->
<%
Set Convert = new Con_Convert ' 類型轉(zhuǎn)換
Set e = new Con_Error ' 錯(cuò)誤處理
set page = new Con_Page '頁(yè)面處理
set Data = new Con_Data '數(shù)據(jù)庫(kù)處理
%>
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇