三层架构秘籍
前言
? ? ? ? 關于三層架構,你想知道的,都在這里。
目錄
一、什么是三層架構
二、三層架構如何聯系在一起
三、為什么要使用三層架構
四、三層架構與兩層的區別
一、什么是三層架構
? ? ? ?定義:
UI(表現層):?主要是指與用戶交互的界面。用于接收用戶輸入的數據和顯示處理后用戶需要的數據。
BLL:(業務邏輯層):?UI層和DAL層之間的橋梁。實現業務邏輯。業務邏輯具體包含:驗證、計算、業務規則等等。
DAL:(數據訪問層):?與數據庫打交道。主要實現對數據的增、刪、改、查。將存儲在數據庫中的數據提交給業務層,同時將業務層處理的數據保存到數據庫。(當然這些操作都是基于UI層的。用戶的需求反映給界面(UI),UI反映給BLL,BLL反映給DAL,DAL進行數據的操作,操作后再一一返回,直到將用戶所需數據反饋給用戶)
二、三層架構如何聯系在一起
? ? ? ? 經典用一個廚師案例輔助理解
? ? ? ?當你某天去飯店吃飯,服務員拿到你們的菜單,菜單要求青椒炒肉,趕巧店里沒有青椒了,那么此時采購員就發揮作用了,采購員出去買青椒,交給廚師,廚師做好菜,交給服務員,服務員將菜端給我們,這就是完成了一個流程。如果當客人對菜有要求,比如說青椒炒肉我要朝五花肉,那你是不是的更新一下菜單,那么這個菜單就可以是我們的實體類,通過實體類的參數傳遞完成對客人要求的滿足,因為客人不可能每個人都吃一樣的口味,有的人要辣,有的人要甜,就是這個道理。
?實體類層(Entity):它不屬于三層中的任何一層,但是它是必不可少的一層。
? ? ? ? 實體類層主要作用就是將生活中的常見事物封裝稱為一個類,那么我要用的時候,調用他的屬性即可。
? ? ? ? 實體類在三層之間做一個傳遞數據的作用,比如我買一件衣服,這件衣服的價格,尺寸,材料等等都給我封裝到衣服類中,我要看的時候我在UI界面能看到,搜索相關條件能搜到,并且能夠購買,數據庫那邊也有一一對應的字段,我的一個類就可以看做是數據庫中的表。
? ? ? ? 三層之間的聯系主要還是看他們之間的引用,例如我們買衣服,我們在網上買衣服是不是只關心,衣服好不好看,便宜不,尺寸合身不,等等,不會去關心我買衣服是怎么操作的,以及數據是怎么來的,那么當我發送了搜尋衣服,比如搜一件男裝冬天,那么請求就會發送得到業務邏輯層,邏輯層去處理我的請求,把請求發送到數據庫,數據訪問層找到衣服,返回衣服,衣服返回到業務邏輯層,邏輯層再做他相應的處理之后,就到了我們的電腦屏幕前面。這就是整個三層架構的聯系過程,且這三者是互不干擾,存數據的只存數據,包裝的就只做包裝,就像工廠流水線一樣,這樣效率才高。
三、為什么要使用三層架構
? ? ? ? 其主要目的就是解耦,讓三層之間的業務關系耦合度降低,每一層就只做自己的事情,提高效率,且就算你有一層的東西發生了變化,也不會影響整個系統的邏輯。
? ? ? ? 就比如說,廚師辭職,只要他會做菜,那老板也不用擔心,服務員換掉,也無關緊要,無非就是這個廚師做菜和那個口味可能有些許不同。
? ? ? ? 當你的項目比較大,且涉及到后期的新功能添加或者后期的維護,那么三層架構不失為你的好選擇。
四、三層架構與兩層的區別
? ? ? ? 在開發中,三層架構代碼寫起來代碼量也是相當大的,那么可不可以不要中間的處理層,我直接UI與數據庫進行交互呢?答案當然是可以的。
? ? ? ??兩層架構一般用在小的項目,不需要后續的維護,或者說更新其他的功能的項目,直接與數據庫交互就好,簡化代碼量。缺點就是如果某個大項目有地方需要維護,由于沒有進行分層,那維護成本是相當高的。
? ? ? ? 三層:發生在哪一層的變化,只需更改該層,不需要更改整個系統。層次清晰,分工明確,每層之間耦合度低——提高了效率,適應需求變化,可維護性高,可擴展性高
? ? ? ? 那么很明顯,三層架構的優勢在于:
? ? ? ? 1,耦合性較低,后期維護成本低。
?? ?? ? 2,利于后期維護和增加新功能。
? ? ? ? 三層架構的劣勢很明顯:
? ? ? ? 1.增加了代碼量和工作量,
? ? ? ? 2.可能導致級聯的修改,在三層架構中,由于我們的業務邏輯是分層來做的,那么我們添加一個功能的時候,可能會涉及到修改三層中各級的功能。
? ? ? ? ?3.降低了系統的性能,因為我們不僅有操作層,才能進入數據庫,如果直接繞過操作層,直接進入數據庫,那么性能確實會更高。
秘籍全都交給你了,還不快去學習
????????
總結
- 上一篇: 计算机实训基地运行与管理,计算机实训基地
- 下一篇: ik 和hanlp_结巴分词和自然语言处