自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 開發(fā)工具
Service層在業(yè)務邏輯不復雜的時候,似乎是沒有什么用,但是隨著應用迭代,業(yè)務邏輯變得復雜了之后,這一層是非常有用的。

[[379185]]

前段日子在社群(點擊加入)里看到有人討論關于Service層接口的問題,DD也經(jīng)常碰到周圍的新人有問過一些類似的問題:一定要寫個Service層的接口嗎?Service層的接口到底用做什么用的呢?好像都沒什么用啊?

我的看法

Service層在業(yè)務邏輯不復雜的時候,似乎是沒有什么用,但是隨著應用迭代,業(yè)務邏輯變得復雜了之后,這一層是非常有用的。

主要表現(xiàn)在這幾個方面:

1、更適合用來處理復雜的業(yè)務邏輯,可能會涉及多張表的操作,甚至還混雜著消息投遞、接口調用等一系列的復雜綜合性事務,這也是我們常說的事務管理所處的層次。

2、對表現(xiàn)層的復用支持,往往我們一個業(yè)務邏輯處理,不會單單只應用在一個API接口或頁面上,如果直接把這部分內容寫到Controller中,那當出現(xiàn)重復操作的時候就會產生復制黏貼,以后再要維護這段邏輯就麻煩了

3、對單元測試的支持,通過單獨的一層service實現(xiàn)業(yè)務邏輯,那么對于業(yè)務邏輯的單元測試會更容易編寫,只需要對service來編寫就可以了;而web層的單元測試就不需要關注業(yè)務本身,只需要關注反饋格式就行了;不然web層就既要考慮業(yè)務邏輯的計算,還要考慮web反饋的格式驗證,太過復雜。

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

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

換你思考了,你覺得Service層接口是否必要呢?

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-02-26 08:46:46

PHY寄存器網(wǎng)絡

2021-01-26 05:06:24

LinuxXargs 命令

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2021-07-01 19:22:33

腳本Shell參數(shù)

2018-06-07 13:17:12

契約測試單元測試API測試

2019-10-16 09:37:33

流行監(jiān)控系統(tǒng)

2023-07-26 07:24:07

2022-08-08 08:25:21

Javajar 文件

2021-08-04 09:32:05

Typescript 技巧Partial

2018-11-29 09:13:47

CPU中斷控制器

2019-02-13 14:15:59

Linux版本Fedora

2021-01-29 08:32:21

數(shù)據(jù)結構數(shù)組

2021-02-06 08:34:49

函數(shù)memoize文檔

2023-05-15 08:38:58

模板方法模式

2022-11-01 08:46:20

責任鏈模式對象

2023-07-06 13:56:14

微軟Skype

2020-10-15 06:56:51

MySQL排序

2021-01-08 05:16:01

5G4GRRU
點贊
收藏

51CTO技術棧公眾號