方又強
(武昌理工學院,湖北武漢,430223)
MVC架構體系降低耦合性措施探討
方又強
(武昌理工學院,湖北武漢,430223)
當前MVC架構體系在軟件開發中的應用十分普遍,通過應用該框架體系可以降低系統的耦合性,本文對此進行分析,分析可MVC架構組成及降低耦合性的措施。
MVC;耦合性;降低
最早提出MVC架構是Trygve Reenskaug,在1979年提出,提出之后當時被廣泛應用在熱門語言Smalltalk中,由于該架構的設計界面具有交互性和多窗口等特點,因此當時被Windows、Macintosh系統所采納。隨著軟件設計模式的出現和面向對象技術的不斷成熟,MVC架構也越來越完善,成為一種典型代表的面向對象設計模式。MVC架構圖見圖1,使用MVC架構對軟件進行開發,將開發過程切割成模型(Model)、視圖(View)、控制器(Controller)3個主要單元。這三個單元相互協作完成用戶提交的每項任務。使用MVC架構可以實現程序的動態設計,并能對程序進行后續修改和擴展簡化,使某一部分功能實現可重復利用。此外,該架構還簡化了軟件設計的復雜程序,使程序結構更加直觀。MVC架構三者的協作關系如下:用戶發送請求給控制器,由控制器決定調用哪個模型來處理;然后模型根據用戶的請求進行相應的業務邏輯處理,并返回與之相對應的數據;最后控制器將返回的數據填充到相應的視圖,并通過視圖呈現給用戶。

圖1 MVC 架構
Model是一組類,它是應用程序的關鍵核心部分,代表了業務規則,用來說明數據的處理、修改等操作規則,它為Controller對象和View對象提供了被Model對象封裝的應用業務邏輯;View是應用程序的用戶界面,和用戶的應用有關,通過該界面可以實現用戶的輸入和輸出。通過View對象可以訪問Model對象中的數據,并顯示Model對象的狀態。通過“形式與內容”可以描述View對象與Model對象的關系:①如果改變Model對象中的狀態,則View對象的用戶界面顯示內容也會發生相應的改變,達到內容與形式的一致;②不同的用戶對同一個Model對象發出不同的請求,可以產生多個View對象。
Controller對象的作用是處理用戶、特定應用程序邏輯及整個應用程序流通信。通過Controller可以實現Model對象與View對象之間的同步,也就是完成如下動作:①以用戶對View對象的操作為基礎對Model對象進行更新;②如果Model對象狀態發生改變及時將這種改變反饋到View對象上。如.NET平臺用DataSet對象可以輕易實現用戶操作的信息反饋,因為一個DataSet對象可以包含多個DataTable對象,每個DataTable對象都可以和數據庫中的數據建立聯系,生成用戶請求數據。通過Controller層可以實現Model層與View層之間溝通,對用戶的請求進行分派,并選擇合適的視圖顯示請求結果,同時也可以對用戶的輸入進行解釋并將它們映射為模型層可執行的操作。
有上述分析可知,在MVC的架構中,應用程序的界面和業務邏輯等應用程序的其他部分是完全分離的,因此,能夠對每部分獨立進行設計,降低了業務邏輯、用戶的控制動作和業務的實際狀況的展現之間的藕合限制。既可以為同一個模型和控制器選擇不同的界面,也可以對同一個應用程序選擇不同的數據源和模型,還可以通過修改控制器對應用程序響應使用者動作的進行改變。
2.1應用StrutS框架進行設計
Struts框架是基于MVC模式,是APache組織的一個開放源碼項目,具備重用性、靈活性和模塊化的優點,應用Struts框架可以簡化基于MVC的Web開發程序,并且縮短開發時間。Struts的主要實現技術是:Servlet、JSP和Custom Tag Library。StrutS框架包括Actionservlet、Action處理器、Controller,其處理流程如下:Actionservlet接收并處理客戶請求,接收請求之后將其映射到Action處理器對象進行處理。Action處理對象訪問ActionForm中的數據,根據用戶請求調用后臺封裝了業務邏輯的Bean組件,返回處理結果到Action處理器,Action處理器對象根據處理結果通知Controller,Controller進行下一步的處理。由于Struts框架的Actionservlet、Action處理器、Controller三部分相分離,因此,采用Struts框架對MVC框架進行設計,可以降低總架構的耦合性。
2.2將MVC框架體系與三層結構技術結合應用
在對軟件進行設計時,其三層結構包括表現層、業務邏輯層及數據訪問層。(1)UI(表現層):該層實際上是用戶界面,用戶在使用某個軟件系統時看到的操作界面。(2)BLL(業務邏輯層):通過業務邏輯層實現對數據層的操作,處理數據業務邏輯及相關事務。(3)DAL(數據訪問層):通過該層可以直接對數據庫進行操作,實現數據存儲的增添、修改、刪除、更新、查找等功能。由于軟件設計包含三層結構,因此采用傳統方法對軟件進行設計,需要編寫大量的代碼,并且這些代碼的可重用性差,代碼模塊之間的耦合性較高,而采用MVC與三層結構技術相結合對軟件進行開發設計,可以減少代碼開發工作量,將表示層和業務邏輯層及數據層分離,降低了代碼的耦合性,提高了系統的可維護性及可復用性。
MVC框架體系在軟件設計和開發中有著廣泛的應用市場,并且具有十分的重要作用和地位。本文簡要介紹了MVC框架體系結構,并對其框架體系耦合性的降低進行分析,具有重要的研究意義。
[1] Ning W,Liming L,Yanzhang W.Research on the Web Information System Development Platform Based on MVC Design Pattern.IEEE,2008 3:203-206.
[2] Yan Cao,Lina Yang,Yanli Yang.Machine Tool Distributed Cooperative Design System Based on Extended MVC-Based Web Application Framework and XML Interoperable Information Model.IEEE,2008:423-428.
Discussion on Reducing Coupling Measures in MVC Architecture
Fang Youqiang
(Wuchang University of Technology,WuHan Hubei,430223)
The application of MVC architecture in software development is very popular. The application of this framework can reduce the coupling of the system. In this paper, the MVC architecture is analyzed and the measures to reduce the coupling are analyzed.
MVC; coupling;reduce