1. 程式人生 > >MVC與DAO模式

MVC與DAO模式

摘自:http://blog.sina.com.cn/s/blog_df1ba2640102wf55.html

        MVC即Model-View-Controller(模型-檢視-控制器)是一種軟體設計模式,MVC最早出現在Smalltalk語言中,後來在Java中得到廣泛應用,並且被Sun公司推薦為Java EE平臺的設計模式,後來Sun公司提出了兩個基於MVC模式的Java Web開發模型:JSP Model1和JSP Model2。

        DAO模式(Data Access Object,DAO)通過對業務層提供資料抽象層介面。DAO模式是屬於Java EE資料層的操作,使用DAO模式可以簡化大量的程式碼編寫和增加程式的可移植性,DAO模式實現了以下目標:1.資料儲存邏輯的分離 2.資料訪問底層實現的分離3.資料抽象 

        在這種模式中,Servlet用來處理請求的事務,充當了控制器(Controller即“C”)的角色,Servlet負責響應客戶對業務邏輯的請求並根據使用者的請求行為,決定將哪個JSP頁面傳送給客戶。JSP頁面處於表現層,也就是檢視(View即“V”)的角色。JavaBean則負責資料的處理,也就是模型(Model即“M”)的角色Servlet+JSP+JavaBean(MVC)模式適合開發複雜的web應用,在這種模式下,servlet負責處理使用者請求,jsp負責資料顯示,javabean負責封裝資料。 Servlet+JSP、JavaBean模式程式各個模組之間層次清晰,web開發推薦採用此種模式。MVC架構Model-View-Controller架構模式是80年代中期在Smalltalk-80 GUI(一種經典的面向物件程式設計語言)實驗室發明的。根據MVC模式,一個軟體應該將商務邏輯(Model)和顯示(View)分開。分開有許多好處,最主要的有兩個方面:1、同一的商務邏輯層(Model)可能會對應多個顯示層(View),如果商務邏輯層和顯示層放在一起的話,再新增一個顯示層的時候就會極大的增加元件的複雜性。一個商務邏輯對著兩個顯示層的例子是:銀行的帳戶的商務邏輯層對應ATM和Internet兩個顯示層。2、通常情況下,每次修改顯示層的時候一般並不需要修改商務邏輯層。​

        不要把所有的雞蛋放到一個籃子裡面,程式碼何嘗不是?如果把訪問資料庫、操作資料庫和其他業務邏輯程式碼同時堆放在一個Servlet中,Servlet無疑非常臃腫,並且維護起來工作量非常大,程式的風險也隨之增大。那麼DAO模式正是解決了這個問題,DAO模式把對資料庫的訪問、操作和呼叫分別放在不同的Java類中,降低了業務邏輯與底層資料庫的耦合度,便於維護,可以說DAO模式已經成為Java Web開發中應用非常廣泛的一種設計模式。​