service層的介面有什麼用

時間 2021-06-11 17:47:57

1樓:SmartLong

架構分層思想現在已經應用的很流行了,不只是後台的MVC了,前端現在也是有MVC的架構設計了。

分層的好處有很多,說說我工作多年的體會。

首先可以劃分不同的職責。每一層只需要關注自己的功能職責,做自己應該做的事情。可以讓整體的功能結構更加清醒。

其次,不會導致牽一髮而動全身。每一層可以有自己的架構設計,可以有自己特殊的實現,只要對外的規範不變,層級內是可以隨意替換框架的。

最後,有利於構建可擴充套件可維護的大型架構。只有合理的分層,合理劃分結構,才能方便更多人員協作開發,才能方便維護。

為什麼這幾年微服務那麼流行,模擬一下,其實也是有分層的思想。這裡的分層,不再基於乙個專案內的邏輯分層了,而是基於全部的服務,站在更巨集觀的角度來講乙個超級應用,分成不同的層級。

程式設計中的很多思想,和我們現實世界其實是有聯絡的。可以想一想,大至國家,小至公司,都是劃分不同的層級,不同的部門。主要還是為了方便管理。

所以,service層存在的意義,就是為了方便擴充套件和維護。

2樓:程式猿DD

本來不想答這個問題的,但是看到之前的幾個回答都說沒有用,所以還是說幾句吧。

先說我的觀點:Service層在業務邏輯不複雜的時候,似乎是沒有什麼用,但是隨著應用迭代,業務邏輯變得複雜了之後,這一層是非常有用的。

主要表現在這幾個方面:

更適合用來處理複雜的業務邏輯,可能會操作多張表,所這是事務管理所處的層次

對表現層的復用支援,往往我們乙個業務邏輯處理,不會單單只應用在乙個API介面或頁面上,如果直接把這部分內容寫到Controller中,那當出現重複操作的時候就會產生複製黏貼,以後再要維護這段邏輯就麻煩了

對單元測試的支援,通過單獨的一層service實現業務邏輯,那麼對於業務邏輯的單元測試會更容易編寫,只需要對service來編寫就可以了;而web層的單元測試就不需要關注業務本身,只需要關注反饋格式就行了;不然web層就既要考慮業務邏輯的計算,還要考慮web反饋的格式驗證,太過複雜。

業務邏輯的組裝支援,因為Controller中依賴的是Service介面的定義,而具體實現可以有很多種,隨著不同的需要可以注入不同的實現,可以比較好的實現多種業務邏輯版本共存。而如果直接把業務邏輯寫了Controller,再要替換的時候,就比較麻煩了。

所以,Service層的設計是非常有必要的,這在單體應用的可維護性和可測試性上都佔據了非常重要的地位。

Android 原生的介面很簡潔,為什麼用得不多,反而是第三方設計更多?

這就是市場啊。通俗點說,林子大了什麼鳥人都有。文藝點說,一千個心中有一千個哈姆雷特。14億人除以1000是140W啊。140W少嗎?不要拿你自己的標準要求別人,好嗎?世界不是圍繞你轉的。 子健吉林 其實原生系統很棒很好,設計當然沒的說,但是由於google的關係,在中國實在是不夠接地氣,很多國外可以...

上大學有什麼用?讀再多的書又有什麼用?

李楊 能被這樣的人當兒子罵還算是你有福了馬屁拍得好也得有點文化不然一聽就知道你是馬屁精 對了.現在這個社會流行通才.巴菲特早就說不要只精於乙個專業讀乙個專業永遠只會讓你想著怎麼為別人賺錢海量讀各種書才能讓你為自己賺錢 有人讀了巴菲特傳就發財了 也有人讀了馬雲就發財了 有人上知天文下知地理結果一月也才...

為什麼用angular的比用vue react的少那麼多?

很多人的回答意思都差不多。其實Angular在實踐和工程性上面都很優秀和領先,至於DI也好module也好ts也好,對於比較有經驗的開發者來說,這些在其他語言和框架中都能找到影子,也不是什麼新概念。但是如果你之前不了解這些概念,那麼的確,Angular門檻比較高。你需要強迫自己遵循這些規範去做事情,...