軟體工程 三層架構

2021-04-30 12:57:41 字數 2099 閱讀 5744

三層架構,資料層(dal)、邏輯層(bll)、表示層(ui);

三層結構的優點

1、開發人員可以只關注整個結構中的其中某一層;

2、可以很容易的用新的實現來替換原有層次的實現;

3、可以降低層與層之間的依賴;

4、有利於標準化;

5、利於各層邏輯的復用。

概括來說,分層式設計可以達至如下目的:分散關注、鬆散耦合、邏輯復用、標準定義。

乙個好的分層式結構,可以使得開發人員的分工更加明確。一旦定義好各層次之間的介面,負責不同邏輯設計的開發人員就可以分散關注,齊頭並進。例如ui人員只需考慮使用者介面的體驗與操作,領域的設計人員可以僅關注業務邏輯的設計,而資料庫設計人員也不必為繁瑣的使用者互動而頭疼了。每個開發人員的任務得到了確認,開發進度就可以迅速的提高。

鬆散耦合的好處是顯而易見的。如果乙個系統沒有分層,那麼各自的邏輯都緊緊糾纏在一起,彼此間相互依賴,誰都是不可替換的。一旦發生改變,則牽一髮而動全身,對專案的影響極為嚴重。降低層與層間的依賴性,既可以良好地保證未來的可擴充套件,在復用性上也是優勢明顯。每個功能模組一旦定義好統一的介面,就可以被各個模組所呼叫,而不用為相同的功能進行重複地開發。

進行好的分層式結構設計,標準也是必不可少的。只有在一定程度的標準化基礎上,這個系統才是可擴充套件的,可替換的。而層與層之間的通訊也必然保證了介面的標準化。

如果是乙個考試系統,考試合格的最低分數線要改,只需要修改業務邏輯相對應函式就可以了,只要此函式的入口引數和返回內容不變,在客戶端不需作任何改動。在這裡,看到了物件導向程式設計的特性之一封裝性的優點,而這一點在開發大型應用時尤其有用,可以把開發人員分成兩組,一組負責開發介面層,另一組負責開發商業邏輯層,雙方只要按照事先商定的函式介面,並行地開發就可以,而不必向從前那樣,後面的工作必須等前面的工作完成後才能開始。當然,這樣的開發模式需要很好的專案協調和文件作支援。

如果現在用的系統是sql server資料庫,由於各種原因要更改用oracle。如果不是三層結構系統的話,可能需要改很多**,延長了開發周期。現在使用了三層結構,只要在加乙個oracle的資料訪問層。這樣就可以實現多資料庫了。

現在可能要做另外乙個系統了,該系統也要對資料庫進行操作。如果以前編寫過,這樣的乙個資料層。只要把以前寫的那個資料層拷貝過來就可以了。實現**復用。從而減短了軟體的開發周期了。

三層結構的缺點

「金無足赤,人無完人」,分層式結構也不可避免具有一些缺陷:

1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的資料,如今卻必須通過中間層來完成。

2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加乙個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的**。

基於元件的三層b/s結構概述

三層結構原理

3個層次中,系統主要功能和業務邏輯都在業務邏輯層進行處理。

所謂三層體系結構,是在客戶端與資料庫之間加入了乙個「中間層」,也叫元件層。這裡所說的三層體系,不是指物理上的三層,不是簡單地放置三颱機器就是三層體系結構,也不僅僅有b/s應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一台機器上。

三層體系的應用程式將業務規則、資料訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與資料庫進行互動,而是通過com/dcom通訊與中間層建立連線,再經由中間層與資料庫進行互動。

表示層

位於最外層(最上層),離使用者最近。用於顯示資料和接收使用者輸入的資料,為使用者提供一種互動式操作的介面

業務邏輯層

業務邏輯層在體系架構中的位置很關鍵,它處於資料訪問層與表示層中間,起到了資料交換中承上啟下的作用。由於層是一種弱耦合結構,層與層之間的依賴是向下的,底層對於上層而言是「無知」的,改變上層的設計對於其呼叫的底層而言沒有任何影響。如果在分層設計時,遵循了面向介面設計的思想,那麼這種向下的依賴也應該是一種弱依賴關係。因而在不改變介面定義的前提下,理想的分層式架構,應該是乙個支援可抽取、可替換的「抽屜」式架構。正因為如此,業務邏輯層的設計對於乙個支援可擴充套件的架構尤為關鍵,因為它扮演了兩個不同的角色。對於資料訪問層而言,它是呼叫者;對於表示層而言,它卻是被呼叫者。依賴與被依賴的關係都糾結在業務邏輯層上,如何實現依賴關係的解耦,則是除了實現業務邏輯之外留給設計師的任務。

資料層

軟體工程 三層架構介紹

ui 表現層 主要是指與使用者互動的介面。用於接收使用者輸入的資料和顯示處理後使用者需要的資料。bll 業務邏輯層 ui層和dal層之間的橋梁。實現業務邏輯。業務邏輯具體包含 驗證 計算 業務規則等等。dal 資料訪問層 與資料庫打交道。主要實現對資料的增 刪 改 查。將儲存在資料庫中的資料提交給業...

軟體架構 三層架構

三層系統的分層式結構 三層架構 3 tier architecture 通常意義上的三層架構就是將整個業務應用劃分為 區分層次的目的即為了 高內聚,低耦合 的思想。表現層 ui 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 bll 針對具體問題的操作,也可以說是...

軟體架構 三層

架構,又名軟體架構,是有關軟體整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。架構 鏈結 1 根據要解決的問題,對目標系統的邊界進行界定。2 並對目標系統按某個原則進行切分。3 對這些切分出來的部分,設立溝通機制。4 使得這些部分之間能夠進行有機的聯絡,合併組成乙個整體,完成目標系統的...