更新時間:2020-04-15 13:37:18 來源:動力節(jié)點(diǎn) 瀏覽2410次
javaweb高級教程,MVC三層架構(gòu)開發(fā),說起應(yīng)用分層,controller,service,mapper三層。很多人其實(shí)并沒有把他們職責(zé)劃分開,在很多代碼中,controller做的邏輯比service還多,service往往當(dāng)成透傳了,這其實(shí)是很多人開發(fā)代碼都沒有注意到的地方,反正功能也能用,至于放哪無所謂唄。這樣往往造成后面代碼無法復(fù)用,層級關(guān)系混亂,對后續(xù)代碼的維護(hù)非常麻煩。
的確在這些人眼中分層只是一個形式,前輩們的代碼這么寫的,其他項(xiàng)目代碼這么寫的,那么我也這么跟著寫。但是在真正的團(tuán)隊(duì)開發(fā)中每個人的習(xí)慣都不同,寫出來的代碼必然帶著自己的標(biāo)簽。
有的人習(xí)慣controller寫大量的業(yè)務(wù)邏輯,有的人習(xí)慣在service中之間調(diào)用遠(yuǎn)程服務(wù),這樣就導(dǎo)致了每個人的開發(fā)代碼風(fēng)格完全不同,所以一個好的應(yīng)用分層需要具備以下幾點(diǎn):方便后續(xù)代碼進(jìn)行維護(hù)擴(kuò)展;分層的效果需要讓整個團(tuán)隊(duì)都接受;各個層職責(zé)邊界清晰。
每一個層基本都自己對應(yīng)的領(lǐng)域模型,這樣就導(dǎo)致了有些人過于追求每一層都是用自己的領(lǐng)域模型,這樣就導(dǎo)致了一個對象可能會出現(xiàn)3次甚至4次轉(zhuǎn)換在一次請求中,當(dāng)返回的時候同樣也會出現(xiàn)3-4次轉(zhuǎn)換,這樣有可能一次完整的請求-返回會出現(xiàn)很多次對象轉(zhuǎn)換。如果在開發(fā)中真的按照這么來,恐怕就別寫其他的了,一天就光寫這個重復(fù)無用的邏輯算了吧。
所以我們得采取一個折中的方案:
1、允許Service/Manager可以操作數(shù)據(jù)領(lǐng)域模型,對于這個層級來說,本來自己做的工作也是做的是業(yè)務(wù)邏輯處理和數(shù)據(jù)組裝。
2、Controller/TService層的領(lǐng)域模型不允許傳入DAO層,這樣就不符合職責(zé)劃分了。
3、同理,不允許DAO層的數(shù)據(jù)傳入到Controller/TService。
總的來說業(yè)務(wù)分層對于代碼規(guī)范是比較重要,決定著以后的代碼是否可復(fù)用,是否職責(zé)清晰,邊界清晰。當(dāng)然這種分層其實(shí)見仁見智,團(tuán)隊(duì)中的所有人的分層習(xí)慣也不同,所以很難權(quán)衡出一個標(biāo)準(zhǔn)的準(zhǔn)則,總的來說只要滿足職責(zé)邏輯清晰,后續(xù)維護(hù)容易,就是好的分層。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“javaweb高級教程,MVC三層架構(gòu)開發(fā)”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
Javaweb高級學(xué)習(xí)視頻
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743