view,control,service,dao,model層的關係及作用(實用)
阿新 • • 發佈:2018-11-08
原文出處:https://blog.csdn.net/zdwzzu2006/article/details/6086829
view層: 結合control層,顯示前臺頁面。
control層:業務模組流程控制,呼叫service層介面。
service層:業務操作實現類,呼叫dao層介面。
dao層: 資料業務處理,持久化操作
model層: pojo,OR maping,持久層
延伸閱讀:關於view、controller、service、dao的理解
首先,分層的目的:高內聚,低耦合。雖然有時候一個controller方法裡面僅僅呼叫一個service的方法,一個service方法裡面僅僅呼叫一個dao層裡的方法,但是,這幾層還是非常有必要存在的。
一、這樣看起來結構是很清晰的,雖然對很對新人來說確實看起來很複雜;
二、可擴充套件性和適應性更加強,比如將來使用者的業務邏輯有一定的改變,你需要做的僅僅就是在service層中多呼叫一個方法即可,而不需要對程式碼有太多的改動,抑或是你將來想換個mvc的框架的話,只需要對接收和返回引數方面做些處理即可,而不需要對service層和dao層做任何改動;
三、維護更加簡單,其實這個和第二點有點相似,不過,不同的是將來維護的不一定是你本人或者開發這個系統的人,所以,如果你嚴格按照這種架構來寫的話,他們只需要有這種分層意識,很容易就能夠對系統有個很好的掌握,也很容易能夠對問題進行排查和修改。
- view:
檢視。這個很容易理解,其實view層就是使用者使用者可以看到的東西。後臺怎麼處理不關心,只關心怎麼樣想使用者展示資訊。 - controller:
也可以成為action層,集合了各種action、業務模組流程。我經常喜歡用控制檢視的跳轉來簡單形容,但是這個是不全面的,因為他除了控制檢視的轉換之外,還控制了業務的邏輯,但是,這裡的控制業務邏輯不是業務邏輯的實現,而僅僅是一個大的模組,你看到之後,知道它實現了這個業務邏輯,但是怎麼實現的,不需要關心,僅僅需要呼叫service層裡的一個方法即可,這樣使controller層看起來更加清晰。 - service:
業務邏輯層。接著controller層中,可以想到,service層是業務邏輯(商務邏輯)的具體實現 - dao:
資料訪問物件。他只負責對資料進行訪問,而不管其他的什麼業務邏輯,其實就是隻幹活,而不管為什麼幹。在dao層裡面要完成的是資料訪問邏輯以及對資料的訪問。資料訪問,大部分情況下就是對資料進行操作。dao層為上層的service層提供介面。dao層在操作完成後,如果是查詢,則返回物件,如果是增刪改,則僅僅需要返回一個boolean值表示成功失敗即可。