參考阿里規(guī)范,優(yōu)秀的 Java 項目代碼該如何分層?
相關(guān)閱讀:杭州程序員從互聯(lián)網(wǎng)跳央企,曬一天工作和收入,網(wǎng)友:待一年就廢
來源:https://www.cnblogs.com/bainannan/p/14418277.html
1.背景
2.如何進行分層
2.1阿里規(guī)范
在阿里的編碼規(guī)范中約束的分層如下:

2.2優(yōu)化分層



3.分層領(lǐng)域模型的轉(zhuǎn)換
DO(Data Object):與數(shù)據(jù)庫表結(jié)構(gòu)一一對應(yīng),通過DAO層向上傳輸數(shù)據(jù)源對象。 DTO(Data Transfer Object):數(shù)據(jù)傳輸對象,Service或Manager向外傳輸?shù)膶ο蟆?/span> BO(Business Object):業(yè)務(wù)對象。由Service層輸出的封裝業(yè)務(wù)邏輯的對象。 AO(Application Object):應(yīng)用對象。在Web層與Service層之間抽象的復(fù)用對象模型,極為貼近展示層,復(fù)用度不高。 VO(View Object):顯示層對象,通常是Web向模板渲染引擎層傳輸?shù)膶ο蟆?/span> Query:數(shù)據(jù)查詢對象,各層接收上層的查詢請求。注意超過2個參數(shù)的查詢封裝,禁止使用Map類來傳輸。
允許Service/Manager可以操作數(shù)據(jù)領(lǐng)域模型,對于這個層級來說,本來自己做的工作也是做的是業(yè)務(wù)邏輯處理和數(shù)據(jù)組裝。 Controller/TService層的領(lǐng)域模型不允許傳入DAO層,這樣就不符合職責(zé)劃分了。 同理,不允許DAO層的數(shù)據(jù)傳入到Controller/TService.

4.總結(jié)
評論
圖片
表情
