2012-02-26 53 views
2

我試圖確認這一說法是否屬實:模型 - 持久性和服務層?真正?

型號包括:

持久層:主要的DAO代表表+ DTO的

服務層+類:的組合DAOS +一些邏輯

你能否也請參考/支持你的答案?我相信我在Spring Framework中看到了很好的圖表,但無論這次如何搜索,我都找不到它。

另一點:我一直在想,爲什麼我們要抽象的東西太重,以至於在某些時候人們停止瞭解,是不是爲了增加自己的價值? :\

例如分析Spring MVC我可以說中央部分是控制器,不管你如何命名其他層,它是控制器誰決定去哪裏提取,如何驗證它以及哪個視圖/控制器通過它上。然而,這種簡單的陳述在正式文章中從未發現讓人們感到困惑。

所以控制器是我們的上帝。控制器要求調用另一個類的方法的類中的某個方法。最重要的是,所有的連接都依賴於注入,因爲我們只需要一個實例來處理單例本質對象。控制器>服務> DAO就是這樣。我真的很感激由語用學寫的書。

如果人們會根據事物的真實情況編寫書籍,而不是如何讓他們看起來漂亮地繪製在圖表中,或者寫下無盡的問題,因爲這樣的問題永遠無法提升。我感謝那些總是向我展示路徑的人。 ;-)

回答

6

MVC和DAO /服務體系結構是相互包含在內的概念,而不是彼此相鄰的概念。

在MVC中,控制器負責獲取所有數據,以某種方式將其放入模型中,並將模型傳遞給要呈現的視圖。如果您還使用DAO /服務體系結構,您的DAO /服務可能會返回一個實體,其中包含您將在給定頁面上顯示的所有信息,如果事情相對簡單,人們通常會將這些信息用作視圖的模型。

這個策略的問題是你最終在你的視圖和你的模型的具體實現之間有依賴關係。另外,如果您稍後決定需要一些未包含在模型中的額外信息,則必須重新編寫視圖來解決此問題。這就是爲什麼經常建議您在將非常簡單的模型(Map)傳遞到視圖之前,儘可能在控制器中準備好數據的原因。

這裏的顯示層的分離圖:

diagram showing the separation of layers

+0

謝謝你,請你提供一個鏈接來圖,所以我可以將其標記爲接受 – Aubergine 2012-02-26 19:05:04

+0

我從[這裏](HTTP得到它: //biese.wordpress.com/2007/10/08/service-layer-and-dao-architecture/)。 – beerbajay 2012-02-26 19:46:14