無規矩不成方圓,無規范不能協作
分層參數傳遞及命名流程
- dao層是數據層,直接進行數據庫的讀寫操作,返回數據對象DO,DO與數據庫表一一對應。
- service層為業務層,用來實現業務邏輯。能調用dao層或者service層,返回數據對象DO或者業務對象BO,BO通常由DO轉化、整合而來,可以包含多個DO的屬性,也可以是只包含一個DO的部分屬性。通常為了簡便,如果無需轉化,service也可以直接返回DO。外部調用(HTTP、RPC)方法也在這一層,對于外部調用來說,service一般會將外部調用返回的DTO轉化為BO。
- controller層為控制層,主要處理外部請求。調用service層,將service層返回的BO/DO轉化為DTO/VO并封裝成統一返回對象返回給調用方。如果返回數據用于前端模版渲染則返回VO,否則一般返回DTO。不論是DTO還是VO,一般都會對BO/DO中的數據進行一些轉化和整合,比如將gender屬性中的0轉化“男”,1轉化為“女”等。
數據流傳架構
職責要明確
controller層職責
1.參數校驗
2.調用service層接口實現業務邏輯
3.轉換業務/數據對象
4.組裝返回對象
5.異常處理
service層職責
1.接收Controller層數據
2.與DAO層交互,處理業務邏輯
3.生成DTO數據并返回Controller層
dao層職責
1.數據庫讀寫
2.向service層返回基本類型或DO
3.避免加入業務邏輯
參考阿里代碼規范:阿里代碼規范