Spirng項目分層需要接口層嗎?
很多小伙伴都做過Spring/SpringBoot項目,在項目分層上,有些項目帶了接口層,有些項目沒有,需要接口層嗎?
分享一位同學的疑問:
接口層原因
其實早期Spring實現(xiàn)注入、AOP等,都是JDK自帶的動態(tài)代理,JDK動態(tài)代理要求必須使用接口,所以早期的項目都是有各種接口,很多項目都一直延用,很多老程序員也都養(yǎng)成了習慣。現(xiàn)在Spring集成了cglib,不需要接口了也能實現(xiàn)注入,AOP了。
- controller:接口入口
- service:服務(wù)層接口
- serviceImpl:服務(wù)層實現(xiàn)
- dao:持久層接口(以前都叫dao,沒有mapper)
- daoImpl:持久層實現(xiàn)還有另一個原因,就是程序員會覺得有了接口層,項目多少能用點設(shè)計模式,看起來高大上一點。
是否有必要?
個人覺得沒必要,作為業(yè)務(wù)邏輯來說,面向接口編程費力不討好。我做過的很多項目,都沒加接口層,也沒啥問題。
接口一般配合上設(shè)計模式,寫一些通用邏輯很好用,寫業(yè)務(wù)功能沒必要。
當然,用接口也沒問題
評論
圖片
表情
