代碼分層

阿里的java開發(fā)手冊給出了代碼分層的:


164852349a8ee9c4.jpg

豐富一點:


layer.jpg

第一層:
controller, rpc service, mq 等等 輕業(yè)務(wù)邏輯,這樣的話 方便業(yè)務(wù)接口的切換, 譬如同一塊邏輯,原本走controller 接口,現(xiàn)在走rpc service;

第二層:
業(yè)務(wù)層, 一般來講業(yè)務(wù)的復(fù)用性比較低;

第三層:
manager層, 可復(fù)用的邏輯, 或者多個dao組合的使用 等等

第四層:
dao層,代理層, 其實都是數(shù)據(jù)源層;

禁止跨層調(diào)用,每一層都有自己的職責(zé);對于同級調(diào)用的話,我認(rèn)為service層是可以的;

在阿里巴巴編碼規(guī)約中列舉了下面幾個領(lǐng)域模型規(guī)約:
DO(Data Object):與數(shù)據(jù)庫表結(jié)構(gòu)一一對應(yīng),通過DAO層向上傳輸數(shù)據(jù)源對象。
DTO(Data Transfer Object):數(shù)據(jù)傳輸對象,Service或Manager向外傳輸?shù)膶ο蟆?br> BO(Business Object):業(yè)務(wù)對象。由Service層輸出的封裝業(yè)務(wù)邏輯的對象。
VO(View Object):顯示層對象,通常是Web向模板渲染引擎層傳輸?shù)膶ο蟆?/p>

DO的數(shù)據(jù)不能直接傳入controller層;

分層不是死的,每個人都有自己的想法,自己的風(fēng)格,但當(dāng)大家都有了一樣的共識,遵循一樣的規(guī)范,那么熟悉代碼的速度會更快,維護起來更加方便;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容