分層設計的軟體系統,由於把相似功能的類或元件放在同一層裡。所以好的分層系統應該具備:層的內部「高內聚」,層與層之間是「松耦合」的。只有符合這樣的乙個設計原則的軟體系統,才能具有可復用性和可擴充套件性。因此,降低層間「耦合度」就成軟體設計的目標,能夠設計出「松耦合」的系統,就意味著我們的系統具備可復用性和可擴充套件性,這樣的系統就能夠滿足的使用者不斷變化的需求。從設計角度我們可以將乙個應用系統(一般是資訊系統)分成四層結構如圖
所示。接下來我們將一一介紹各層之間的含義。
表示層
表示層是使用者與系統互動的元件集合,使用者通過這一層向系統提交請求或發出指令,系統通過這一層接收使用者請求或指令,然後,根據請求指令呼叫服務層,再根據呼叫的結果,將相應的內容展現到表示層。表示層應該是輕薄的,不應該具有業務邏輯。如果我們的系統是乙個
web系統的話,我們採用的技術有
html
、jsp
和servlet
等,也可以使用
mvc框架,例如
struts
等框架技術。這時我們將表示層稱為
web層更準確一點。無論採用什麼技術表示層都應該是輕薄的,不應該具有業務邏輯。也就是說無論我們使用
jsp、
servlet
作為表示層還是使用
swing
作為表示層都應該是輕薄的。
服務層
服務層是系統的核心業務處理層,負責接收表示層的指令和資料,根據業務邏輯的需要呼叫相應的持久層,並將結果返回給表示層。為了降低表示層和服務層的耦合問題,我們會在兩層之間引入介面,然後在執行期注入依賴關係。服務層一般使用的技術有會話
ejb、訊息
ejb和
j**abean
。資料持久層
資料持久層用於訪問資料庫,資料持久層中一般是通過
dao(資料訪問物件設計模式)訪問資料庫的,也是為了降低耦合度,
dao被設計為介面,
dao實現可以是
jdbc
,也可以使用一些
orm框架如
hibernate
等。除了使用
dao以外,我們也可以使用
ejb中的實體
ejb實現資料持久化。
eis
層eis層即企業資訊系統層,是系統的資料**層。它們可以是資料庫、檔案和其它的系統,多數情況下是指的是資料庫。
五層體系結構
學習計算機網路時我們一般採用折中的辦法,也就是中和 osi 和 tcp ip 的優點,採用一種只有五層協議的體系結構,這樣既簡潔又能將概念闡述清楚。應用層 運輸層 運輸層 transport layer 的主要任務就是負責向兩台主機程序之間的通訊提供通用的資料傳輸服務。應用程序利用該服務傳送應用層報...
三層體系結構總結(四)
前一段時間幫乙個專案組做他們的專案,有幸了解了一下他搭建的架構。相比起以前所見過的架構,我覺得這個應該算是不錯的。大體結構如下圖 1 層與層之間依賴於介面 ui依賴於ibll,ibll依賴於idal,這樣做在設計模式中叫做依賴倒置。也就是說依賴於抽象,而不是具體實現。如果今後的業務邏輯有變動可以不變...
TCP IP四層網路體系結構
物理層 負責通訊網路收發資料報。網路層 選擇 流量控制 網路擁塞問題,ip協議是這一層的核心 傳輸層 機器之間建立用於會話的端到端連線 用於資料傳輸 該層的核心是tcp udp 應用層 主要為使用者提供針對性的服務,這一層的代表協議有 http 代表瀏覽器 smtp 代表簡單郵件傳輸協議 ftp 檔...