一、為什麼要分層。
以前的我們,寫代碼的時候,都在main()方法中,出現了錯誤,就慢慢調試,這樣浪費了我們很長的時間,而我們程序員的時間是非常寶貴的
但是當我們使用分層架構的時候,就可以清晰明確的知道錯誤出在哪裡,或者在公司中,基本都是使用分層架構的,因為那樣可以分離我們程序員的
關注,更為簡潔。
二、分層帶來了哪些好處。
其實帶來了很多好處,首先,方便維護和分離關注點,就不談了。
1.便於更改或替換。
先說說便於替換或者更新,我現在用的數據庫是SQLServer數據庫,如果我需要
將數據庫更換為MySQL,如果增刪改查的語法一致的情況下,我們只需要更改BaseDao工具類的連接字符串,而不用更改其它層的代碼。
2.實現了軟件之間的解耦。
就是每個部分獨立變化。舉個簡單的例子,畫一個三角形和畫一個文字,在DX和OpenGL下面用的是截然不同的方法(不僅僅是函數名不一樣)。
但是你哪一天你發現,你愛用DX還是OpenGL,絲毫不影響你如何畫三角形還是文字,愛畫什麼畫什麼,那麼你畫的東西跟你畫的手段就解耦了。
這個解耦的方法就是在中間插入一層interface。
孔子曰,軟件的所有問題都可以通過增加一層interface來解決。你的團隊越大,需求變化越快,你越要保證程序員之間的依賴關系越少,
你的軟件解耦的就越好,interface就越多,關系就越復雜(跟亂不一樣),應付變化就越容易,錢賺的就越多,越穩定。
3.做提高軟件組件的重用
在軟件開發中,由於不同的環境和功能要求,我們可以通過對以往成熟軟件系統的局部修改和重組,保持整體穩定性,以適應新要求。
這樣的軟件稱為可重(chong)用軟件。
三、分層的架構和解析。
可大致分為:
DAO:該層分為接口和他的實現類來實現功能,dao子目錄只提供對外接口,而他的實現類要放到數據訪問層,就是impl層。
DTO:
Data Transfer Object 數據傳輸對象
主要用於遠程調用等需要大量傳輸對象的地方。
比如我們一張表有 100 個字段,那麼對應的 PO 就有 100 個屬性。
但是我們界面上只要顯示 10 個字段,
客戶端用 WEB service 來獲取數據,沒有必要把整個 PO 對象傳遞到客戶端,
這時我們就可以用只有這 10 個屬性的 DTO 來傳遞結果到客戶端,這樣也不會暴露服務端表結構 .
到達客戶端以後,如果用這個對象來對應界面顯示,那此時它的身份就轉為 VO
DAO和DTO的區別:
DAO :數據訪問對象 —— 同時還有 DAO 模式
DTO :數據傳輸對象 —— 同時還有 DTO 模式
BIZ:業務邏輯層,跟dao層一樣只提供共接口。
Model:實體層,用於讀、取數據。
JavaBian:javaBean在MVC設計模型中是model,又稱模型層,在一般的程序中,我們稱它為數據層,就是用來設置數據的屬性和一些行為,然後我會提供獲取屬性和設置屬性的get/set方法
Servlet:用於跟JSP頁面進行交互
POJO:(plain ordinary java object) 簡單無規則 java 對象 純的傳統意義的 java 對象。就是說在一些 Object/Relation Mapping 工具中,能夠做到維護數據庫表記錄的 persisent
object 完全是一個符合 Java Bean 規范的純 Java 對象,沒有增加別的屬性和方法。我的理解就是最基本的 Java Bean ,只有屬性字段及 setter 和 getter 方法!。