2.10 為什么service層是萬能的,什么都可以放進(jìn)來?

萬能的Service層
對(duì)于很多時(shí)候,經(jīng)常發(fā)現(xiàn)沒有什么事情是Service解決不掉的,如果有,那就用兩個(gè)Service。
Service的職責(zé)
他更像是導(dǎo)演,所有角色演員要有明確的分工,導(dǎo)演應(yīng)該只完成場(chǎng)景的協(xié)調(diào)與拍攝。
每個(gè)業(yè)務(wù)功能就像是一個(gè)場(chǎng)景,在拍攝之前,先需要讓各個(gè)角色到位,然后導(dǎo)演通過調(diào)度各角色的參演順序與行為完成拍攝,每個(gè)角色都有自己的定位,而不是只是一個(gè)空殼,各個(gè)角色不能完全依靠導(dǎo)演來派遣調(diào)度,導(dǎo)演的職責(zé)是“導(dǎo)”,而不是“演”。

職責(zé)混亂的Service
Service的成了SQL的組裝類了:
Service對(duì)業(yè)務(wù)邏輯混亂且高度聚合
Serivice將三層的職責(zé)全部做了
命名混亂的Service
有時(shí)候以Controller命名:
有時(shí)候以entity命名
萬能Service的危害:
復(fù)用性低
可維護(hù)性差
可拓展性差
單元測(cè)試難落地
導(dǎo)致出現(xiàn)萬能Service的原因
一味的追求實(shí)現(xiàn)功能
層次的混亂
模糊的職責(zé)
求人不如求己,讓我們一塊開始學(xué)習(xí)架構(gòu)設(shè)計(jì)吧
標(biāo)簽: