官术网_书友最值得收藏!

6.1 MVC模式

第6章任務1

1.什么是MVC模式

MVC設計模式是在20世紀80年代出現的一種軟件設計模式,至今已被廣泛使用,后來被推薦為Sun公司Java EE平臺的設計模式。MVC把應用程序分成三大基本模塊:模型(Model,即M)、視圖(View,即V)和控制器(Controller,即C),三者聯合即MVC,它們分別擔當不同的任務。

MVC將應用中各組件按功能進行分類,不同的組件使用不同技術,相同的組件被嚴格限制在其所在層內,各層之間以松耦合的方式組織在一起,從而提供良好的封裝。MVC減弱了業務邏輯接口和數據接口之間的耦合,讓視圖層更富于變化。

Java Web應用開發也伴隨著MVC設計模式,經歷了Model I和Model II兩個階段。

2.Model I模式

Model I模式的實現比較簡單,適用于快速開發小規模項目。Model I模式有兩種開發形式:一種是純JSP方式開發,另一種是使用JSP+JavaBean方式開發應用程序。

從工程化的角度看,Model I模式開發的局限性非常明顯,JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現邏輯混雜在一起,從而導致代碼的重用性非常低,增加了應用的擴展和維護的難度。

(1)純JSP方式開發

這種方式是在JSP文件中直接嵌入Java代碼,即小腳本方式,所有的邏輯控制和業務處理都以小腳本的方式實現。

優點是簡單方便,適合開發小型的Web應用程序。缺點是JSP頁面中多種語言代碼混合,增加了開發難度,不易于系統后期維護和擴展,系統出現運行異常時,不易于代碼調試。

(2)JSP+JavaBean方式開發

這種方式對純JSP方式進行了一些改進,使用JavaBean封裝業務處理及數據庫操作,JSP調用JavaBean實現內容顯示。這種方式的優點是頁面代碼相對簡潔,業務處理和數據庫操作封裝到JavaBean中,提高了代碼的重用性,通過對JavaBean的修改,提高了系統的擴展性,便于系統調試。缺點是業務邏輯依然由JSP來完成,JSP頁面依然需要嵌入Java代碼。

3.Model II模式

在Model II模式中,JSP頁面嵌入了流程控制代碼和業務邏輯代碼,將這部分代碼提取出來,放入單獨的Servlet和JavaBean類中,也就是使用JSP+Servlet+JavaBean共同開發,這種方式就是Model II模式。

Model II是典型的基于MVC架構的設計模式,Servlet作為前端控制器,負責接收客戶端發送的請求,在Servlet中只包含控制邏輯和簡單的前端處理。然后,調用后端JavaBean來完成實際的邏輯處理。最后,轉發到相應的JSP頁面處理顯示邏輯。MVC設計模式如圖6-1所示。圖中的MVC(Model-View-Controller,模型-視圖-控制器)設計模式,即將數據顯示(JSP)、模型訪問(JavaBean)和流程控制(Servlet)處理相分離,使之相互獨立。

圖6-1 MVC設計模式

4.MVC優點

MVC更符合軟件工程化管理的精神,即不同的層各司其職,每一層的組件具有相同的特征,有利于通過工程化和工具化生成與管理程序代碼。應用被分隔為三層,降低了各層之間的耦合,提供了應用的可擴展性。

● 模型層:模型返回的數據與顯示邏輯分離。模型數據可以應用任何的顯示技術,例如,使用JSP頁面、Velocity模板或者直接產生Excel文檔等。

● 視圖層:多個視圖可以對應一個模型。按MVC設計模式,一個模型對應多個視圖,可以減少代碼的復制及代碼的維護量,一旦模型發生改變,也易于維護。

● 控制層:由于它把不同的模型和不同的視圖組合在一起,完成不同的請求。因此,控制層負責對用戶請求和響應。

主站蜘蛛池模板: 盐山县| 阿克| 博野县| 虎林市| 商水县| 曲沃县| 濮阳县| 班戈县| 永德县| 盐池县| 中卫市| 岳池县| 岑巩县| 师宗县| 安乡县| 古蔺县| 军事| 穆棱市| 沂源县| 新田县| 应用必备| 仲巴县| 清镇市| 高邮市| 南开区| 剑川县| 灵宝市| 白沙| 武陟县| 中西区| 会同县| 体育| 正定县| 修武县| 万山特区| 彰化市| 横峰县| 桐梓县| 历史| 微博| 琼中|