1. 程式人生 > >聊一聊:Service層你覺得有用嗎?

聊一聊:Service層你覺得有用嗎?

前段日子在社群([點選加入](https://mp.weixin.qq.com/s/K0BHKqZohfK4jllzLyQA1g))裡看到有人討論關於Service層介面的問題,DD也經常碰到周圍的新人有問過一些類似的問題:一定要寫個Service層的介面嗎?Service層的介面到底用做什麼用的呢?好像都沒什麼用啊? 說說我的看法: Service層在業務邏輯不復雜的時候,似乎是沒有什麼用,但是隨著應用迭代,業務邏輯變得複雜了之後,這一層是非常有用的。 主要表現在這幾個方面: 1、更適合用來處理複雜的業務邏輯,可能會涉及多張表的操作,甚至還混雜著訊息投遞、介面呼叫等一系列的複雜綜合性事務,這也是我們常說的事務管理所處的層次。 2、對錶現層的複用支援,往往我們一個業務邏輯處理,不會單單隻應用在一個API介面或頁面上,如果直接把這部分內容寫到Controller中,那當出現重複操作的時候就會產生複製黏貼,以後再要維護這段邏輯就麻煩了 3、對單元測試的支援,通過單獨的一層service實現業務邏輯,那麼對於業務邏輯的單元測試會更容易編寫,只需要對service來編寫就可以了;而web層的單元測試就不需要關注業務本身,只需要關注反饋格式就行了;不然web層就既要考慮業務邏輯的計算,還要考慮web反饋的格式驗證,太過複雜。 4、業務邏輯的組裝支援,因為Controller中依賴的是Service介面的定義,而具體實現可以有很多種,隨著不同的需要可以注入不同的實現,可以比較好的實現多種業務邏輯版本共存。而如果直接把業務邏輯寫了Controller,再要替換的時候,就比較麻煩了。 所以,Service層的設計是非常有必要的,這在單體應用的可維護性和可測試性上都佔據了非常重要的地位。 換你思考了,你覺得Service層介面是否有必要呢? > 歡迎關注我的公眾號:程式猿DD,獲得獨家整理的免費學習資源助力你的Java學習之路!另每週贈書不停哦~