表示層呼叫控制層,控制層呼叫業務層,業務層呼叫資料訪問層MVC
阿新 • • 發佈:2019-02-09
首先解釋面上意思,service是業務層,dao是資料訪問層。 呵呵,這個問題我曾經也有過,記得以前剛學程式設計的時候,都是在service裡直接呼叫dao,service裡面就new一個dao類物件,呼叫,其他有意義的事沒做,也不明白有這個有什麼用,參加工作久了以後就會知道,業務才是工作中的重中之重。 我們都知道,標準主流現在的程式設計方式都是採用MVC綜合設計模式,MVC本身不屬於設計模式的一種,它描述的是一種結構,最終目的達到解耦,解耦說的意思是你更改某一層程式碼,不會影響我其他層程式碼,如果你會像spring這樣的框架,你會了解面向介面程式設計,表示層呼叫控制層,控制層呼叫業務層,業務層呼叫資料訪問層。初期也許都是new物件去呼叫下一層,比如你在業務層new一個DAO類的物件,呼叫DAO類方法訪問資料庫,這樣寫是不對的,因為在業務層中是不應該含有具體物件,最多隻能有引用,如果有具體物件存在,就耦合了。當那個物件不存在,我還要修改業務的程式碼,這不符合邏輯。好比主機板上記憶體壞了,我換記憶體,沒必要連主機板一起換。我不用知道記憶體是哪家生產,不用知道多大容量,只要是記憶體都可以插上這個介面使用。這就是MVC的意義。 接下來說你感覺service的意義,其實因為你現在做東西分層次不是那麼嚴格,在一個你們做東西業務本身也少,舉個最簡單的例子,你做一個分頁的功能,資料1000條,你20條在一個頁,你可以把這個功能寫成工具類封裝起來,然後在業務層裡呼叫這個封裝的方法,這才是業務裡真正幹得事,只要沒訪問資料庫的,都要在業務裡寫。 再有不明白的追問,這是經驗問題,呵呵,其實以後你就會懂。只是剛開始寫的程式碼都是有個請求,我就去資料庫取,業務幾乎沒有。