1. 程式人生 > >Java從入門到放棄;MVC 模式

Java從入門到放棄;MVC 模式

tro 一個 模式 調用 內容 分工合作 工廠 術語 處理

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 模式