Java從入門到放棄;MVC 模式
MVC 模式是一種軟件框架模式,被廣泛應用在 JavaEE 項目的開發中。MVC 模式很好理解,但也十分重要,在今後的 Web 應用開發中,我們都離不開它。
之前,我們學習過了 Servlet、JSP,看起來它們都可以獨立完成許多功能,卻各有特點,MVC 就提供了一種揚長避短,雙劍合璧的方法。
1.什麽是 MVC
MVC 即模型(Model) 、視圖(View)、控制器(Controller)。
模型(Model)
模型是用於處理數據邏輯的部分。
所謂數據邏輯,也就是數據的映射以及對數據的增刪改查,Bean、DAO(data access object,數據訪問對象)等都屬於模型部分。
視圖(View)
視圖負責數據與其它信息的顯示,也就是給用戶看到的頁面。
html、jsp 等頁面都可以作為視圖。
控制器(controller)
控制器是模型與視圖之間的橋梁,控制著數據與用戶的交互。
控制器通常負責從視圖讀取數據,處理用戶輸入,並向模型發送數據,也可以從模型中讀取數據,再發送給視圖,由視圖顯示。
前面學到的 Servlet 便可以用作控制器。
2.為什麽要用 MVC
竊以為,MVC 模式有以下三大好處。
看著舒服
前面學習 Servlet 和 JSP 的時候,我們發現這倆東西都是功能和顯示混著來,可讀性很差,而使用 MVC,Servlet 裏都是邏輯代碼,JSP 都是顯示代碼,一目了然。
寫著容易
MVC 模式有利於人員的分工合作,不同的開發人員可各自發揮專長,同時開發不同的部分。
改著省心
MVC 可以在一個時間內專門關註一個方面,從而讓應用程序的測試與叠代更加方便。所以,復雜的應用程序大都會選擇使用 MVC 模式。
上述好處,用一句行話來說,就叫 “高內聚 低耦合”。
3.設計模式與框架模式
在搜集資料的時候發現很多地方把 MVC 稱為一種 “設計模式”,一開始我覺得沒什麽毛病,從字面上完全說地通,但是仔細一想,“設計模式” 這個詞是一個術語,是指工廠模式、單例模式這些東西,是不能亂用的。而 MVC,應該被稱作是 “框架模式”。
那麽兩者有什麽區別呢?
設計模式,是針對 “代碼” 的,如同修築房屋時磚瓦的層疊方式,是軟件開發的基石。
框架模式,是針對 “框架” 的,是面向某些應用場景的可復用的方案,如同醫院、商場等不同功能建築的布局,是比設計模式更宏觀一些的概念。
在今後的文章中,我將與大家共同學習當前的主流框架。
4.MVC 實踐
在 JavaEE 中,最為經典的 MVC 模式即
Bean(Model) + JSP(View) + Servlet(Controller)
假如有一個需求:實現編輯網頁上的信息並與數據庫同步
在實現上,可以分為以下幾步:
用 Bean 來映射數據表,並編寫好 DAO
用負責查詢的 Servlet 調用 DAO 查詢需要編輯的內容並發送給用於編輯的 jsp 頁面
把編輯頁面進行修改後的值,再提交給負責更新的 Servlet 調用 DAO 更新數據庫
使用另一個負責查詢的 Servlet,把查詢出來的更新過的內容發送給負責顯示的 JSP
這個部分本來打算自己做一遍,但之前推薦的 Java 學習網站 How2J 上已經有很好的實踐教程,我就不費勁了,直接戳下面的鏈接:
How2J 的 MVC教程
只是一個小練習,看過前面的內容的話一會兒工夫就可以做完。
Java從入門到放棄;MVC 模式