摘要:數(shù)據(jù)訪問層:有時(shí)候也稱為是持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫的訪問。簡單的說法就是實(shí)現(xiàn)對(duì)數(shù)據(jù)表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就會(huì)包括對(duì)象和數(shù)據(jù)表之間的mapping,以及對(duì)象實(shí)體的持久化。在PetShop的數(shù)據(jù)訪問層中,并沒有使用ORM,從而導(dǎo)致了代碼量的增加,可以看作是整個(gè)設(shè)計(jì)實(shí)現(xiàn)中的一
數(shù)據(jù)訪問層:有時(shí)候也稱為是持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫的訪問。簡單的說法就是實(shí)現(xiàn)對(duì)數(shù)據(jù)表的 Select,Insert,Update,Delete 的操作。如果要加入 ORM 的元素,那么就會(huì)包括對(duì)象和數(shù)據(jù)表之間的 mapping,以及對(duì)象實(shí)體的持久化。在 PetShop 的數(shù)據(jù)訪問層中,并沒有使用 ORM,從而導(dǎo)致了代碼量的增加,可以看作是整個(gè)設(shè)計(jì)實(shí)現(xiàn)中的一大敗筆。 業(yè)務(wù)邏輯層:是整個(gè)系統(tǒng)的核心,它與這個(gè)系統(tǒng)的業(yè)務(wù)(領(lǐng)域)有關(guān)。以PetShop為例,業(yè)務(wù)邏輯層的相關(guān)設(shè)計(jì),均和網(wǎng)上寵物店特有的邏輯相關(guān),例如查詢寵物,下訂單,添加寵物到購物車等等。如果涉及到數(shù)據(jù)庫的訪問,則調(diào)用數(shù)據(jù)訪問層。表示層:是系統(tǒng)的 UI 部分,負(fù)責(zé)使用者與整個(gè)系統(tǒng)的交互。在這一層中,理想的狀態(tài)是不應(yīng)包括系統(tǒng)的業(yè)務(wù)邏輯。表示層中的邏輯代碼,僅與界面元素有關(guān)。在 PetShop 中,是利用 ASP.Net 來設(shè)計(jì)的,因此包含了許多 Web 控件和相關(guān)邏輯。分層式結(jié)構(gòu)究竟其優(yōu)勢(shì)何在?Martin Fowler 在《Patterns of EnterpriseApplication Architecture》一書中給出了答案:
1、開發(fā)人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的其中某一層;
2、可以很容易的用新的實(shí)現(xiàn)來替換原有層次的實(shí)現(xiàn);
3、可以降低層與層之間的依賴;
4、有利于標(biāo)準(zhǔn)化;
5、利于各層邏輯的復(fù)用。
概括來說,分層式設(shè)計(jì)可以達(dá)至如下目的:分散關(guān)注、松散耦合、邏輯復(fù)用、標(biāo)準(zhǔn)定義。 一個(gè)好的分層式結(jié)構(gòu),可以使得開發(fā)人員的分工更加明確。一旦定義好各層次之間的接口,負(fù)責(zé)不同邏輯設(shè)計(jì)的開發(fā)人員就可以分散關(guān)注,齊頭并進(jìn)。例如 UI人員只需考慮用戶界面的體驗(yàn)與操作,領(lǐng)域的設(shè)計(jì)人員可以僅關(guān)注業(yè)務(wù)邏輯的設(shè)計(jì),而數(shù)據(jù)庫設(shè)計(jì)人員也不必為繁瑣的用戶交互而頭疼了。每個(gè)開發(fā)人員的任務(wù)得到了確認(rèn),開發(fā)進(jìn)度就可以迅速的提高。松散耦合的好處是顯而易見的。如果一個(gè)系統(tǒng)沒有分層,那么各自的邏輯都緊緊糾纏在一起,彼此間相互依賴,誰都是不可替換的。一旦發(fā)生改變,則牽一發(fā)而動(dòng)全身,對(duì)項(xiàng)目的影響極為嚴(yán)重。降低層與層間的依賴性,既可以良好地保證未來的可擴(kuò)展,在復(fù)用性上也是優(yōu)勢(shì)明顯。每個(gè)功能模塊一旦定義好統(tǒng)一的接口,就可以被 各個(gè)模塊所調(diào)用,而不用為相同的功能進(jìn)行重復(fù)地開發(fā)。進(jìn)行好的分層式結(jié)構(gòu)設(shè)計(jì),標(biāo)準(zhǔn)也是必不可少的。只有在一定程度的標(biāo)準(zhǔn)化基礎(chǔ)上,這個(gè)系統(tǒng)才是可擴(kuò)展的,可替換的。而層與層之間的通信也必然保證了接口的標(biāo)準(zhǔn)化。
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題