三層架構詳解

2022-08-23 17:24:13 字數 2093 閱讀 3823

ui(表現層):主要是指與使用者互動的介面。用於接收使用者輸入的資料和顯示處理後使用者需要的資料。

bll:(業務邏輯層):ui層和dal層之間的橋梁。實現業務邏輯。業務邏輯具體包含:驗證、計算、業務規則等等。

dal:(資料訪問層):與資料庫打交道。主要實現對資料的增、刪、改、查。將儲存在資料庫中的資料提交給業務層,同時將業務層處理的資料儲存到資料庫。(當然這些操作都是基於ui層的。使用者的需求反映給介面(ui),ui反映給bll,bll反映給dal,dal進行資料的操作,操作後再一一返回,直到將使用者所需資料反饋給使用者)

每一層都各負其責,那麼該如何將三層聯絡起來呢?

1、單項引用(見下圖)

2、這時候實體層(entity)來了。(注:當然,實體層的作用不止這些)

entity(實體層):它不屬於三層中的任何一層,但是它是必不可少的一層。

entity在三層架構中的作用:

但是對於大量的資料來說,用變數做引數有些複雜,因為參數量太多,容易搞混。比如:我要把員工資訊傳遞到下層,資訊包括:員工號、姓名、年齡、性別、工資....用變數做引數的話,那麼我們的方法中的引數就會很多,極有可能在使用時,將引數匹配搞混。這時候,如果用實體做引數,就會很方便,不用考慮引數匹配的問題,用到實體中哪個屬性拿來直接用就可以,很方便。這樣做也提高了效率。

注:這裡為什麼說可以暫時理解為每個資料表對應乙個實體??答:大家都知道,我們做系統的目的,是為使用者提供服務,使用者可不關心你的系統後台是怎麼工作的,使用者只關心軟體是不是好用,介面是不是符合自己心意。使用者在介面上輕鬆的增、刪、改、查,那麼資料庫中也要有相應的增、刪、改、查,而增刪改查具體操作物件就是資料庫中的資料,說白了就是表中的字段。所以,將每個資料表作為乙個實體類,實體類封裝的屬性對應到表中的字段,這樣的話,實體在貫穿於三層之間時,就可以實現增刪改查資料了)

綜上所述:三層及實體層之間的依賴關係:

服務員:只管接待客人;

廚師:只管做客人點的菜;

採購員:只管按客人點菜的要求採購食材;

他們各負其職,服務員不用了解廚師如何做菜,不用了解採購員如何採購食材;廚師不用知道服務員接待了哪位客人,不用知道採購員如何採購食材;同樣,採購員不用知道服務員接待了哪位客人,不用知道廚師如何做菜。

他們三者是如何聯絡的?

比如:廚師會做:炒茄子、炒雞蛋、炒麵——此時構建三個方法( cookeggplant()、cookegg()、cooknoodle())

顧客直接和服務員打交道,顧客和服務員(ui層)說:我要乙個炒茄子,而服務員不負責炒茄子,她就把請求往上遞交,傳遞給廚師(bll層),廚師需要茄子,就把請求往上遞交,傳遞給採購員(dal層),採購員從倉庫裡取來茄子傳回給廚師,廚師響應cookeggplant()方法,做好炒茄子後,又傳回給服務員,服務員把茄子呈現給顧客。

這樣就完成了乙個完整的操作。

在此過程中,茄子作為引數在三層中傳遞,如果顧客點炒雞蛋,則雞蛋作為引數(這是變數做引數)。如果,使用者增加需求,我們還得在方法中新增引數,乙個方法新增乙個,乙個方法設計到三層;何況實際中並不止設計到乙個方法的更改。所以,為了解決這個問題,我們可以把茄子、雞蛋、麵條作為屬性定義到顧客實體中,一旦顧客增加了炒雞蛋需求,直接把雞蛋屬性拿出來用即可,不用再去考慮去每層的方法中新增引數了,更不用考慮引數的匹配問題。

這樣講,不知道大家是不是可以明白。(待會例項解釋吧)

使用三層架構的目的:解耦!!!

同樣拿上面飯店的例子來講:

(1)服務員(ui層)請假——另找服務員;廚師(bll層)辭職——招聘另乙個廚師;採購員(dal)辭職——招聘另乙個採購員; (2)顧客反映:

任何一層發生變化都不會影響到另外一層!!!

c mysql三層架構例項 三層架構例項

一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...

軟體架構 三層架構

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

三層架構 UI BLL DAL

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