5 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
標(biāo)準(zhǔn)的MVC確實(shí)是直接在controller中實(shí)現(xiàn)業(yè)務(wù)邏輯,但實(shí)際項(xiàng)目里,還是會(huì)建議在controller和數(shù)據(jù)庫(kù)操作之間封裝服務(wù)層。
一方面,controller在對(duì)應(yīng)不同的請(qǐng)求url,從功能上會(huì)存在很多重復(fù);不好維護(hù);
另一方面,要考慮你的服務(wù)功能將來(lái)可能暴露給其他前端,比如其他應(yīng)用接入,或者不同的終端(如APP、移動(dòng)H5等);有些服務(wù)甚至可能單獨(dú)剝離出來(lái)獨(dú)立部署;

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
一般controller層=》Service層=》Dao層。
1.controller層,接受請(qǐng)求,進(jìn)行分頁(yè),DTO對(duì)象封裝操作。
2.service層,執(zhí)行邏輯,控制并發(fā),事務(wù)。
3.Dao層,與數(shù)據(jù)庫(kù)交互。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
很不好,擴(kuò)展起來(lái)很費(fèi)勁,維護(hù)性也很差。
controller應(yīng)該是薄薄的一層,業(yè)務(wù)邏輯盡量后置在服務(wù)層去處理,在服務(wù)粒度、服務(wù)利用上也更加自由

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
現(xiàn)在我接手的項(xiàng)目Controller層也是奇大無(wú)比,一個(gè)方法上百行,里面有多層if嵌套,感覺(jué)這樣最大的問(wèn)題就是在后期維護(hù)時(shí)會(huì)很麻煩,需要理解之前的業(yè)務(wù)邏輯才能更改;個(gè)人感覺(jué)較好的方法是controller-service-dao,由service負(fù)責(zé)具體的邏輯操作,3者之間依次調(diào)用,彼此之間盡可能解耦;代碼要盡可能可擴(kuò)展。
添加回答
舉報(bào)