更新時間:2017年12月26日16時59分 來源:傳智播客 瀏覽次數(shù):
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,是一種軟件設計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
MVC模式最早被Trygve Reenskaug提出,成為施樂帕羅奧多研究中心(Xerox PARC)的Smalltalk語言發(fā)明的一種軟件設計模式。
MVC可對程序的后期維護和擴展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序簡化,更加直觀。
需要注意的是MVC設計模式并不是java語言獨有的設計模式,幾乎所有的B/S結構的項目都在使用這種設計模式。其中M、V、C分別代表如下含義:
l M:model層,即模型層,用來維護數(shù)據(jù)以及提供數(shù)據(jù)訪問方法;
l V:view層,即視圖層,通常由jsp充當,用于展示模型的部分數(shù)據(jù)或所有數(shù)據(jù)的可視化視圖;
l C:controller層,即控制層,用于對處理請求。
下面通過一張圖來了解MVC設計模式,如圖1-1所示:
圖 1-1 MVC設計模式圖
Javaweb的開發(fā)經歷了JSP Model1、JSP Model1二代以及JSP Model2三個時期。下面我們分別介紹這三個時期。
1.JSP Model1第一代
JSP Model1是javaweb早期的設計模式,它適合小型web項目,開發(fā)成本低。Model1第一代時期,服務器端只有jsp頁面,所有的操作都在jsp頁面中,其中訪問數(shù)據(jù)庫的API是在jsp頁面中完成的。也就是說,所有的東西都耦合在一起,這樣對后期的維護和擴展極為不利。下面我們通過一張圖來了解JSP Model1設計模式,如圖1-2所示:
圖1-2 JSP Model1設計模式
2.JSP Model1第二代
JSP Model1第二代有所改進,把業(yè)務邏輯的內容放到了JavaBean中,而JSP頁面負責顯示以及請求調度的工作。雖然第二代比第一代好了些,但還讓JSP做了過多的工作,在JSP中將視圖工作和請求調度(控制器)的工作耦合在一起了。下面我們通過一張圖來了解JSP Model1第二代設計模式,如圖1-3所示:
圖1-3 JSP Model1第二代設計模式
3.JSP Model2
JSP Model2模式已經可以清晰的看到MVC完整的結構了,在JSP Model2中層次劃分的很清晰,如下所示:
l JSP:視圖層,用來與用戶打交道,負責接收用來的數(shù)據(jù),以及顯示數(shù)據(jù)給用戶;
l Servlet:控制層,負責找到合適的模型對象來處理業(yè)務邏輯,轉發(fā)到合適的視圖;
l JavaBean:模型層,完成具體的業(yè)務工作,例如:開啟、轉賬等。
JSP Model2適合多人合作開發(fā)大型的Web項目,各司其職,互不干涉,有利于開發(fā)中的分工,有利于組件的重用。但是,Web項目的開發(fā)難度也隨之加大,同時對開發(fā)人員的技術要求也有所提高。
下面通過一張圖來了解JSP Model2設計模式,如圖1-4所示:
圖1-4 JSP Model2設計模式