<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 921字,需瀏覽 2分鐘

           ·

          2021-01-29 11:25

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

          DD的看法是:

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

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

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

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

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

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

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

          那么,問題來了,你覺得Service層接口是否必要呢?

          往期推薦

          聊一聊:你平時寫不寫單元測試?

          聊一聊:下班后的消息,要不要回?

          聊一聊:你都用什么方式回憶青春呢?

          聊一聊:MyBatis和Spring Data JPA的選擇問題



          瀏覽 109
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高圆圆一区二区三区 | 国产极品青青草 | 欧美成人精品一区二区 | 稀缺小u女呦品呦cB视频 | 曰韩欧美综合黄色 |