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