一、為什么要分層。
以前的我們,寫代碼的時候,都在main()方法中,出現(xiàn)了錯誤,就慢慢調(diào)試,這樣浪費了我們很長的時間,而我們程序員的時間是非常寶貴的
但是當(dāng)我們使用分層架構(gòu)的時候,就可以清晰明確的知道錯誤出在哪里,或者在公司中,基本都是使用分層架構(gòu)的,因為那樣可以分離我們程序員的
關(guān)注,更為簡潔。
二、分層帶來了哪些好處。
其實帶來了很多好處,首先,方便維護和分離關(guān)注點,就不談了。
1.便于更改或替換。
先說說便于替換或者更新,我現(xiàn)在用的數(shù)據(jù)庫是SQLServer數(shù)據(jù)庫,如果我需要
將數(shù)據(jù)庫更換為MySQL,如果增刪改查的語法一致的情況下,我們只需要更改BaseDao工具類的連接字符串,而不用更改其它層的代碼。
2.實現(xiàn)了軟件之間的解耦。
就是每個部分獨立變化。舉個簡單的例子,畫一個三角形和畫一個文字,在DX和OpenGL下面用的是截然不同的方法(不僅僅是函數(shù)名不一樣)。
但是你哪一天你發(fā)現(xiàn),你愛用DX還是OpenGL,絲毫不影響你如何畫三角形還是文字,愛畫什么畫什么,那么你畫的東西跟你畫的手段就解耦了。
這個解耦的方法就是在中間插入一層interface。
孔子曰,軟件的所有問題都可以通過增加一層interface來解決。你的團隊越大,需求變化越快,你越要保證程序員之間的依賴關(guān)系越少,
你的軟件解耦的就越好,interface就越多,關(guān)系就越復(fù)雜(跟亂不一樣),應(yīng)付變化就越容易,錢賺的就越多,越穩(wěn)定。
3.做提高軟件組件的重用
在軟件開發(fā)中,由于不同的環(huán)境和功能要求,我們可以通過對以往成熟軟件系統(tǒng)的局部修改和重組,保持整體穩(wěn)定性,以適應(yīng)新要求。
這樣的軟件稱為可重(chong)用軟件。
三、分層的架構(gòu)和解析。
可大致分為:

DAO:該層分為接口和他的實現(xiàn)類來實現(xiàn)功能,dao子目錄只提供對外接口,而他的實現(xiàn)類要放到數(shù)據(jù)訪問層,就是impl層。
DTO:
Data Transfer Object 數(shù)據(jù)傳輸對象
主要用于遠程調(diào)用等需要大量傳輸對象的地方。
比如我們一張表有 100 個字段,那么對應(yīng)的 PO 就有 100 個屬性。
但是我們界面上只要顯示 10 個字段,
客戶端用 WEB service 來獲取數(shù)據(jù),沒有必要把整個 PO 對象傳遞到客戶端,
這時我們就可以用只有這 10 個屬性的 DTO 來傳遞結(jié)果到客戶端,這樣也不會暴露服務(wù)端表結(jié)構(gòu) .
到達客戶端以后,如果用這個對象來對應(yīng)界面顯示,那此時它的身份就轉(zhuǎn)為 VO
DAO和DTO的區(qū)別:
DAO :數(shù)據(jù)訪問對象 —— 同時還有 DAO 模式
DTO :數(shù)據(jù)傳輸對象 —— 同時還有 DTO 模式
BIZ:業(yè)務(wù)邏輯層,跟dao層一樣只提供共接口。
Model:實體層,用于讀、取數(shù)據(jù)。
javaBian:javaBean在MVC設(shè)計模型中是model,又稱模型層,在一般的程序中,我們稱它為數(shù)據(jù)層,就是用來設(shè)置數(shù)據(jù)的屬性和一些行為,然后我會提供獲取屬性和設(shè)置屬性的get/set方法
Servlet:用于跟jsp頁面進行交互
POJO:(plain ordinary java object) 簡單無規(guī)則 java 對象 純的傳統(tǒng)意義的 java 對象。就是說在一些 Object/Relation Mapping 工具中,能夠做到維護數(shù)據(jù)庫表記錄的 persisent
object 完全是一個符合 Java Bean 規(guī)范的純 Java 對象,沒有增加別的屬性和方法。我的理解就是最基本的 Java Bean ,只有屬性字段及 setter 和 getter 方法!。
新聞熱點
疑難解答