淺談Asp_net中使用“充血模型

淺談Asp_net中使用“充血模型

ID:46856556

大?。?4.00 KB

頁數(shù):7頁

時間:2019-11-28

淺談Asp_net中使用“充血模型_第1頁
淺談Asp_net中使用“充血模型_第2頁
淺談Asp_net中使用“充血模型_第3頁
淺談Asp_net中使用“充血模型_第4頁
淺談Asp_net中使用“充血模型_第5頁
資源描述:

《淺談Asp_net中使用“充血模型》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、淺談Asp.net中使用“充血模型”好的軟件都要有架構(gòu)模式,軟件開發(fā)行業(yè)發(fā)展到今天,估計每個開發(fā)人員或多或少都接觸過架構(gòu)模式、設(shè)計模式,我們公司也不例外,我們公司的項冃主要使用微軟的Asp.net做基于B/S結(jié)構(gòu)Web應(yīng)用開發(fā)。一般的軟件我們都采用“事務(wù)腳本”架構(gòu)模式,到具體的面向?qū)ο蟠a結(jié)構(gòu)組織時進行分層,再根據(jù)不同需要采用工廠、抽象工廠、原型等設(shè)計模式o相信這種模式很多開發(fā)人員都有接觸過,將Model、DAL>BLL各層分開設(shè)計,最后在UI后臺aspx.cs或aspx.vb中進行調(diào)用,這樣使得代碼結(jié)構(gòu)很清晰,維護和擴展起來非常方便,比如:我現(xiàn)在想把開發(fā)

2、好的軟件數(shù)據(jù)庫由MSSQL換成Oracle,我直接修改DAL層即可,如果釆用了工廠設(shè)計模式,甚至不需要改任何類代碼就可以適配不同數(shù)據(jù)庫。雖然上述設(shè)計已經(jīng)略顯便捷,但整體架構(gòu)過于繁瑣、領(lǐng)域?qū)ο蠓浅?斩?、業(yè)務(wù)邏輯變得沉重、且不夠面向?qū)ο?,也因而被國際著名的面向?qū)ο髮<襇artinFowler稱之為"貧血模型”,同時也與之對應(yīng)的有“充血模型”,從字面上看就應(yīng)該優(yōu)于“貧血模型”,那么什么是“充血模型”呢?它和“貧血模型”有什么區(qū)分呢?貧血模型:上面的“事務(wù)腳本”架構(gòu)模式的舉例就是。在領(lǐng)域?qū)ο罄镏挥術(shù)et/set屬性,所有的業(yè)務(wù)邏輯都不包含在內(nèi)而是放在業(yè)務(wù)邏輯層,所

3、有的CRUD放在數(shù)據(jù)持久層。優(yōu)點是系統(tǒng)的層次結(jié)構(gòu)清楚,各層之間單向依賴。缺點是不夠面向?qū)ο?,領(lǐng)域?qū)ο笾皇亲鳛楸4鏍顟B(tài)或者傳遞狀態(tài)使用,領(lǐng)域?qū)ο笾袥]有行為動作,要增加擴展一些行為動作要一層一層去寫,所以被稱為“貧血模型”,相信做過幾年開發(fā)的同胞都能理解。充血模型:符合“活動記錄”架構(gòu)模式。領(lǐng)域?qū)ο罄锩姘琯et/set.業(yè)務(wù)邏輯、數(shù)據(jù)持久化等一切屬性和行為動作,業(yè)務(wù)邏輯層可以沒有(如果有需要也可以封裝部分控制事務(wù)、權(quán)限等放在業(yè)務(wù)邏輯層)。缺點是如何再劃分業(yè)務(wù)邏輯層比較模糊。優(yōu)點是結(jié)構(gòu)更加輕量化,擴展更加簡潔靈活,特別適合Web快速開發(fā),且更加面向?qū)ο螅喝缤?/p>

4、個人,既有眼睛、鼻子、嘴巴、耳朵、眉毛、四肢……等屬性同時也有行、處、臥、立、跑、跳、蹲……等行為動作,所以被稱為“充血模型”?!俺溲P汀痹O(shè)計具體要求:(1)每一個數(shù)據(jù)庫表對應(yīng)創(chuàng)建一個類,類的每一個對象實例對應(yīng)于數(shù)據(jù)庫中表的一行記錄,通常表的每個字段在類中都有相應(yīng)的Fieldo(2)領(lǐng)域?qū)ο笸路庋b了業(yè)務(wù)邏輯。(3)領(lǐng)域?qū)ο笸瑫r負(fù)責(zé)數(shù)據(jù)持久化,在其中封裝對數(shù)據(jù)庫的訪問的CRUD行為。這樣的設(shè)計結(jié)構(gòu)與數(shù)據(jù)庫耦合更加緊密。下面以我們公司開發(fā)的一套“龍騰政府投資工程項目管理系統(tǒng)”項目為例做一介紹。這個項目中有個“項目基本信息管理”模塊,需求是:錄入項目名稱、項

5、目碼、項目分類、占地面積、建設(shè)地址……等屬性,同吋有項目添加、修改、刪除、查詢、導(dǎo)出等動作。MSSQL數(shù)據(jù)庫中有一張表XiangMu,結(jié)構(gòu)如下:WIN-K3RAEM43DEE...-dbo.XiangMu列名數(shù)據(jù)類型允詐空IDkit□MingChengvarchar(200)BianMavarchar(50)匣1FinLEivarchar(50)匣1MianJikit匣1DiZhivarchar(200)匣1FuZeRenvarchar(50)匣1ShiJiandatetime匣1TianJiaRenvarchar(50)匣1VisualStudio中Ap

6、pCode結(jié)構(gòu)如下:丄EApp_Code丄&Entities53XiangMu.es丄&Utils宀DataBaseExtension.esc#ExcelRender.esc#SMSMessage.esEntities冃錄中放置了所有的實體類(領(lǐng)域?qū)ο螅?,每張?shù)據(jù)表對應(yīng)一個類oUtils冃錄下放置了一些公共類,女Ch數(shù)據(jù)庫公共方法、Excel導(dǎo)入導(dǎo)出公共方法、短信發(fā)送公共方法等。領(lǐng)域?qū)ο骕iangMu類中的具體代碼結(jié)構(gòu)如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingS

7、ystem.Data.Common;namespaceCormin{III

///項冃基本信息IIIpublicclassXiangMuIll///唯一標(biāo)識IIIpublicintID{get;set;}III///項冃名稱IIIpublicstringMingCheng{get;set;}IIIvsummary〉///項目碼IIIpublicstringBianMa{get;set;}III///項目分類I

8、II

publicstringFenLei{ge

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。