999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MVC設計模型及其應用

2009-04-29 00:00:00申子明
考試周刊 2009年3期

摘要: 本文介紹了MVC設計模式的概念,討論了MVC設計模式在ASP.Net環境下的實現,并對MVC在ASP.NET環境下的應用特性進行了分析。

關鍵詞: MVC設計模式 ASP.NET 系統開發 實現 特性分析

一、引言

隨著程序規模和復雜性的增大,人們在探討一種合理的分析、設計和開發的模式。以使得軟件系統尤其是大型軟件系統能像制造機器一樣。精確地分工制造,方便地組合使用,靈活地拆卸和簡單地維修,使生產效率和軟件重用度能夠得到很大的提高。MVC模式就是這樣一種應運而生的軟件設計模式。

二、MVC設計模式

(一)MVC設計思想

在面向對象系統的設計中,類及其生成的對象是構成面向對象系統的最基本元素,采用設計方法組合這些元素,得到構成面向對象系統的構件。同時,這些構件的設計方法在經過不斷的改進和完善后逐漸成型,成為構成面向對象系統的基本設計參考,稱為設計模(Design Pattern)。

MVC英文即Model-View-Controller,是目前軟件設計中比較流行的一種模式。MVC模式的出現不僅實現了功能模塊和用戶訪問模塊的分離,同時它還提高了應用系統的可維護性、可擴展性、可移植性和組件的可復用性。

MVC將應用程序分為三個部分:模型(Model)、視圖(View)、控制器(Controller)。它們的作用分別描述如下:

模型(Model)指的是真正完成任務的代碼,包含應用系統的核心功能,表示一個應用系統的數據,并且包含訪問、維護和管理這些數據的邏輯。所有屬于應用系統持久狀態的數據都應該保存于模型對象里。模型提供的服務必須足夠適用于不同的終端。一個模型聚集了相關的數據和操作,以提供一個詳細而精確的服務。一個模型的接口提供了訪問和更新模型狀態,以及執行封裝在模型中的復雜進程的方法。模型服務被控制器訪問,用于查詢或更改模型的狀態。當模型狀態發生變化時,模型會通報給視圖。在模型同界面分離的情況下,代碼即可實現可管理性和可重用性。

視圖(View)表示用戶視圖部分,是用戶看到的與之交互的界面,其中并沒有業務邏輯代碼。對于視圖的處理僅限于視圖上數據的采集和處理以及用戶的請求。

控制(Controller)是聯系模型與視圖之間的紐帶,控制模型和視圖之間的交互過程。它獲取并翻譯用戶輸入的動作,指定執行該動作的模型,或者根據用戶的輸入和執行的結果來選擇下一個視圖。可以理解為從用戶接收請求,將模型與視圖匹配在一起,共同完成用戶的請求。控制層相當于一個分發器,決定選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。例如,用戶點擊一個連接,控制層接受請求后,并不處理業務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。

(二)MVC優點

MVC設計模式具有條理清晰,易于擴展,運用可分布的特點,因此在系統開發中具有顯著的優勢。具體表現為以下三個優點:

1.模型、視圖與控制器的分離,使一個模型可以被多個視圖調用,提高了模型的利用率。

2.MVC設計模式可以使系統方便地支持其它新的客戶端類型,除了運行在桌面型的瀏覽器外,還可以運行在PDA、帶PDA功能的手機、WAP瀏覽器上。

3.由于MVC設計模式分離了數據的控制與顯示,從而可以使開發者更容易協作開發,后臺開發人員可以專注業務邏輯的編程,前臺開發人員專注于用戶交互的界面,從而縮短產品的開發周期。

三、MVC設計模式在基于ASP.NET系統開發中的實現

ASP.NET提供了實現MVC設計模式的天然環境。ASP.NET采code-behind代碼來處理顯示頁面的用戶交互,通過code-behind源代碼文件,來實現邏輯控制代碼、腳本語言、HTML的分離。ASP.NET應用系統按照三層Web結構劃分為表示層、業務層和數據層。表示層由Web窗體組成,實現視圖和控制器的功能;業務層包括業務實體組件和業務邏輯組件;數據層包括數據對象、數據訪問組件等。由業務層和數據層共同實現模型的功能。以下用Web系統中常見的用戶信息查詢模塊為例,探討MVC設計模式在ASP.NET應用中的實現機制。

Model用來管理應用程序域的行為和數據。在本系統中將業務邏輯、與數據庫連接和交互的公共操作封裝在單獨的類中,用專門的類來處理業務邏輯和數據邏輯,從而提高了代碼的重用性。具體實現方式為:在公用的基本類庫中,定義DataBase類作為公共數據庫操作的基本類,在DataBase類中實現與數據庫連接和交互的公共操作的代碼如下:

Public class DataBase∥對數據庫操作的基本類

{

Public DataSet RunSql(string SQL)//執行SQL語句,返回DataSet對象

{

SqlConnection conn=new SqlConnection(ConnStr)//建立SQL連接

SqlDataAdapter da=new SqlDataAdapter(SQL,Conn);

//創建SglDataAdapter對象并實現連接打開和關閉

DataSet ds=new DataSet();//創建DataSet對象

da.Fill(ds);//填充數據到DataSet中

da.Dispose();//釋放SqlConnection對象

return ds;//返回DataSet對象

}

}

應用程序在數據訪問層(DAO)中通過引用公用基本類中的方RunSql()來獲取數據對象,下面的數據層實現所有用戶的基本信息,具體方法如下:

Public class UserInfoDAO,BaseObdect

//繼承所有數據對象的基類BaseObdect

{

Public DataSet GetUseInfo()//從數據庫中獲取用戶信息

{

String sql=“select * from Userlnfo”;

//SQL查詢語句

return db.RunSql(sql);//調用數據庫操作的基本類中RunSql()方法

}

}

Controller不直接對Model中的數據邏輯進行操作,而是通過業務邏輯獲取數據層(DAO)中的數據對象。Biz層由類(.CS)文件組成,其中業務邏輯組件封裝了具體的處理邏輯。以下為根據一個用戶ID返回對應的用戶信息處理邏輯。

Public class UserInfoBiz

{

UserInfoDAO userInfo=new UserlnfoDAO();

//實例化對應數據邏輯類

Public DataSet GetSingleUserInfo(string ID);

//得到包含用戶信息的—個DataSet

{

DataSet ds=userInfo.GetUserInfo();

//調用DAO層UserInfoDAO類中的GetUserInfo()方法

DataView dr=New DataView();//創建DataView對象

dv.Table=ds.Tables;//ds表數據復制到dv中

dv.RowFilter=“userID”+ID;//過濾符合ID用戶的紀錄

DataSet dsl=(DataSet)dv;//強制轉換為DataSet對象

return(ds1);

}

}

最后,Controller中的事件調用Model中的業務邏輯方法,并且把響應提交到對應的視圖組件以產生響應,完成對

客戶端表單數據的描述。

四、基于ASP.NET的MVC設計模式特性分析

(一)優點

通過上述實現過程進行分析,在ASP.NET中用MVC模式開發的應用程序具有如下優點:

1.減少頁面依賴性,提升代碼復用。

通過頁面中的代碼分離,可降低系統設計的復雜性,減少頁面中的重復代碼。

2.系統結構清晰,增加系統的可擴展性。

MVC模式實現的應用程序具有極其良好的結構和可擴展性,它可以實現—個模型的多個視圖,采用多個控制器,當模型改變時所有視圖將自動刷新。控制器相互獨立工作。

3.便于優化系統,提高系統性能。

由于每次向數據庫請求,都要從數據庫裝載數據,通過公共的數據訪問類和ASP.NET的內部機制可以把數據存放在高速緩存中,從而優化整個應用系統的性能。

4.系統模型獨立,提高系統的可測性。

模型獨立于視圖,既可以在ASP.NET環境之外用第三方工具測試模型,也可以通過編寫測試腳本實現自動化測試,大大提高測試的有效性和效率。

(二)不足之處

在ASP.NET中使用MVC模式也有不足之處:一方面,控制器不直接訪向數據層,增加了代碼的復雜性,對于一些簡單的業務邏輯附加的額外代碼所占比重比較大。另一方面,代碼的分離增加了代碼的維護成本,如果有涉及三者的變化時,在不同的文件中修改顯然比在同—個文件修改花費的代價大。因此,在設計系統前權衡這樣的代價是必不可少的。

五、結語

采用MVC模式來設計和開發軟件系統,能夠使整個系統結構清晰,容易進行模塊劃分,增強了各層、各模塊的高內聚低耦合的特性,使各個模塊的開發相對獨立,使得軟件的擴展性、復用性和維護性方面有了極大的提高,給系統的開發、擴展、維護帶來了很大的方便,并且系統也可以很容易地加入新的業務和功能,從而適應各種需求的變化。

參考文獻:

[1]鄒鵬,尚雄等.基于MVC模式的客戶關系管理系統設計[J].計算機應用研究,2005,(02):21-23.

[2]黎永良,崔杜武.MVC設計模式的改進與應用[J].計算機工程,2005,(9):96-98.

[3]陳川等.基于MVC設計模式構筑JSP/Servlet+EJB的Web應用[J].計算機工程,2001,27(11):48-49.

主站蜘蛛池模板: 91精品专区| 最近最新中文字幕在线第一页| a级毛片网| 日韩第一页在线| 日本成人在线不卡视频| 国产日韩丝袜一二三区| 尤物精品国产福利网站| 精品久久人人爽人人玩人人妻| 久久精品电影| 中文字幕有乳无码| 人人爱天天做夜夜爽| 伊人色综合久久天天| 狠狠久久综合伊人不卡| 国产真实乱子伦精品视手机观看| 九九久久精品免费观看| 国产精品免费p区| 国产精品永久不卡免费视频 | 久久人人97超碰人人澡爱香蕉 | 亚洲一区网站| 免费在线国产一区二区三区精品| 5555国产在线观看| 久久综合色播五月男人的天堂| 被公侵犯人妻少妇一区二区三区| 超碰91免费人妻| 日韩一区二区三免费高清| 少妇精品在线| 国产精品免费电影| 亚洲精品国产自在现线最新| 亚洲国产日韩在线成人蜜芽| 欧美笫一页| 亚洲伊人天堂| 精品黑人一区二区三区| 亚洲一区二区黄色| 91蜜芽尤物福利在线观看| 国产精品林美惠子在线播放| 亚洲区一区| 91热爆在线| 97综合久久| 色综合色国产热无码一| 成人a免费α片在线视频网站| 先锋资源久久| 日韩在线播放中文字幕| www.亚洲一区| 国产一区成人| 亚洲无码视频一区二区三区| 日韩欧美国产成人| 久久不卡精品| 亚洲国产精品一区二区高清无码久久| 香蕉久久永久视频| 首页亚洲国产丝袜长腿综合| av免费在线观看美女叉开腿| 在线国产综合一区二区三区| 精品国产一二三区| 极品性荡少妇一区二区色欲| 中文字幕乱码中文乱码51精品| 亚洲高清日韩heyzo| 国产精品理论片| 91无码国产视频| 韩日午夜在线资源一区二区| 国产精品污污在线观看网站| 国产在线高清一级毛片| 91久久青青草原精品国产| 在线观看无码av免费不卡网站| 国产无码精品在线播放| 亚洲香蕉伊综合在人在线| 久久免费视频播放| 色天堂无毒不卡| 久久精品66| a级毛片免费看| 欧美成人手机在线观看网址| 一级一级一片免费| 国产精品片在线观看手机版| 欧美日韩成人| yjizz国产在线视频网| 这里只有精品免费视频| 小13箩利洗澡无码视频免费网站| 色偷偷综合网| 99在线观看国产| 欧美日韩在线国产| 国产呦精品一区二区三区下载| 91精品啪在线观看国产91九色| 凹凸国产分类在线观看|