java分层命名_JAVA基础篇(5)-POJO的命名规则
源起于alibaba的開發手冊類的命名規范
參考自——知乎上的回答
變臉命名規范
不同類型的對象在架構設計中用于不同的用途,如下的分層架構表示各個POJO的用途。為什么要在分層架構中國,定義這些POJO對象呢?主要是為了確保各個分層能夠很好的封裝自己的服務,有效控制信息的傳播。
試想一下,如果PO和VO沒有區別,那么數據庫表結構的所有字段就一覽無余地展示到前端,不僅給后臺安全帶來隱患,而且無法在網絡傳輸中剝離冗余信息提高用戶的帶寬成本。
PO:是Persistant Object(持久化對象)的縮寫,用于表示數據庫中的一條記錄映射成的java對象,PO僅僅用于表示數據,沒有任何數據操作。通常遵循Java Bean的規范,擁有getter/setter方法。
DAO:是Data Access Object的縮寫,用于表示一個數據訪問對象。使用DAO訪問數據庫,包括增改刪查等操作,與PO一起使用。DAO一般在持久層,完全1封裝數據庫操作,對外暴露的方法使得上層應用不需要關注數據庫相關的任何信息。
VO:(本質上是Controller和View層交互)是View Object的縮寫,用于一個與前端進行交互的對象。那可以使用PO傳遞數據嗎?實際上,這里的VO只包含前端需要展示的數據即可,對于前端不需要的數據,比如數據庫創建和修改的時間等字段,出于減少傳輸數據量大小和保護數據庫結構不外泄的目的,不應該在VO中體現出來,通常遵守Java Bean規范,擁有getter/setter方法。
DTO:(本質是經過處理的PO對象,可能增加或減少PO的屬性)是Data Transfer Object的縮寫,用于表示一個數據傳輸對象。DTO通常用于不同服務或服務不同分層之間的數據傳輸。,DTO和VO概念相似,并且通常情況下字段也基本一致。但是DTO和VO又有一些不同,這個不同是設計理念上的。(敲黑板,劃重點)DTO代表服務層需要接收的數據和返回的數據,而VO代表展示層需要顯示的數據。DTO通常遵循Java Bean的規范,擁有getter/setter方法。
BO:是Business Object(業務對象)的縮寫,將業務邏輯封裝為一個對象,這個對象包括一個或者多個其他的對象。比如一個簡歷,有教育經歷、工作經歷、社會關系等等。 我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關系對應一個PO。建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。 這樣處理業務邏輯時,我們就可以針對BO去處理。
POJO:是Plain Ordinary Java Object(普通java對象)的縮寫,表示一個簡單的java對象,上面說的PO、VO、DTO、BO都是典型的POJO,而DAO一般不是POJO,只提供一些調用方法。
總結
以上是生活随笔為你收集整理的java分层命名_JAVA基础篇(5)-POJO的命名规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ui调试_如何使用 IBM i
- 下一篇: java runtime environ