關於資料訪問模式(五) Layers模式

2021-09-05 14:12:37 字數 1229 閱讀 3860

layers(層)模式,我想大家應該都不會陌生了。不管是硬體驅動程式、tcp/ip協議,還是j2ee應用軟體的架構,層

的強大之處在**呢?我們是否真的了解層的劃分呢?

我們面對乙個複雜問題的時候,都會想著將這個問題化整為零,分為乙個個子問題,然後逐個擊破。相應

的,處理這樣複雜問題的軟體也會進行劃分。通常我們將處理這些子問題的程式稱為component(元件)。那麼

元件或者元件的集合是否就可以稱為層呢?在回答這個問題之前,我們先來了解乙個概念——orthogonal component (正交元件)[1]。

所謂正交元件,就是處理完全不相交問題的軟體元件。當你打算將層模式應用到軟體設計的時候,就要花

心思去搜尋問題中那些不相交的問題,從而為這些問題建立相應的正交元件。只有正交元件之間的關係才能稱

為層。這樣說,似乎有點玄乎,我也說得有點暈眩了。還是說說現實中的例子吧,其實在之前的post中有提到

的data accessor和active domain object就可以稱作正交元件,data accessor主要負責資料庫物理訪問的細

節,並為active domain object提供相應的介面;而active domain object則是為應用程式提供與domain

object相關的邏輯操作,同時它是利用了data accessor提供的抽象介面來完成自己的具體實現的,它對data

accessor的具體實現是一無所知的。正是基於這樣的條件,data accessor和active domain object就成為正

交元件,並且形成了不同的層,如下圖所示:

層模式中的某一層實現並非是最困難的,難就難在層的劃分,以下的幾個方面都是十分適合在單獨層中實

現的:1、資料訪問細節:例如data accessor;

2、域物件對映:例如active domain object;

3、快取:例如資料快取,statement快取; 

4、資料來源分布;

5、許可權管理;

6、資源管理:例如連線池;

隨著層次劃分的增多,隨之而來的就是複雜性的提高,而且層初始化的成本也會相應的增加。恰到好處的

層次劃分在層模式的應用尤其重要。

[1]  orthogonal component

[2]  參考書籍:《資料訪問模式——物件導向應用中的資料庫互動》

關於資料訪問模式(一) 資料訪問模式的重要性

在企業級應用當中,資料是企業資源的重要組成部分。應用程式的開發也是圍繞資料的組織和儲存 資料的訪問 資料的處理 資料的表示進行的。由於這幾個方面為整個應用程式系統提供了服務 service 因此我們可以把這幾個方面統稱為資料服務 不知道用這樣的名詞去概括是否恰當 我們從企業應用程式常用的三層或者多層...

資料訪問物件模式

資料訪問物件模式 data access object pattern 或 dao 模式用於把低階的資料訪問 api 或操作從高階的業務服務中分離出來。以下是資料訪問物件模式的參與者。我們將建立乙個作為模型物件或數值物件的 student 物件。studentdao 是資料訪問物件介面。studen...

設計模式 資料訪問物件模式

上文 設計模式 組合實體模式 經歷過jsp頁面請求jdbc然將資料庫中的資料直接查出後直接返回給控制器,然後jsp渲染的痛,相信經歷過的都很清楚,這樣的很難維護,而現在流行的mvc模式,其實m分為dao和entity兩層,dao負責與資料庫互動,而entity作為資料模型,很好起到了隔離作用。資料訪...