亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MVC設(shè)計(jì)模式的分析與應(yīng)用

        2010-08-15 00:52:53劉艷鋒
        科技傳播 2010年22期
        關(guān)鍵詞:頁(yè)面用戶模型

        劉艷鋒

        長(zhǎng)春職業(yè)技術(shù)學(xué)院,吉林 長(zhǎng)春 130033

        0 引言

        MVC架構(gòu)是“Model-View-Controller” 的縮寫,即“模型-視圖-控制器”。MVC程序是由這3個(gè)部分組成。MVC架構(gòu)是一個(gè)復(fù)雜的架構(gòu),其設(shè)計(jì)和實(shí)現(xiàn)也是相對(duì)復(fù)雜的。但是,我們已經(jīng)設(shè)計(jì)了功能和安全性很好的設(shè)計(jì)模式,并且可以把多種設(shè)計(jì)模式結(jié)合在一起,使MVC架構(gòu)的實(shí)現(xiàn)轉(zhuǎn)換為相對(duì)較為容易的代碼實(shí)現(xiàn)。

        1 MVC設(shè)計(jì)思想

        MVC的思想是把一個(gè)應(yīng)用程序的數(shù)據(jù)輸入、數(shù)據(jù)處理、結(jié)果輸出流程按照Model、View、Controller的方式進(jìn)行有組織的分離,看似分離卻又是統(tǒng)一。這樣一個(gè)應(yīng)用程序設(shè)計(jì)被分成3個(gè)部分:模型層、視圖層、控制層。

        1.1 模型

        模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯,一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于同一個(gè)模型可以被多個(gè)視圖重用,所以提高了應(yīng)用的可重用性。

        業(yè)務(wù)模型是MVC最主要的核心。也稱企業(yè)模型,它為企業(yè)提供一個(gè)框架結(jié)構(gòu),以確保企業(yè)的應(yīng)用系統(tǒng)與企業(yè)經(jīng)常改進(jìn)的業(yè)務(wù)流程緊密匹配??梢哉f(shuō),也就是說(shuō)業(yè)務(wù)建模主要是從業(yè)務(wù)的角度而非技術(shù)角度對(duì)企業(yè)進(jìn)行建模。

        1.2 視圖

        視圖是用戶交互界面,對(duì)于Web應(yīng)用程序來(lái)說(shuō),可以是HTML,JSP等界面。

        隨著應(yīng)用程序的復(fù)雜度的提高和規(guī)模的擴(kuò)大,界面的處理也變得非常復(fù)雜。應(yīng)用程序可能有很多不同風(fēng)格和類型的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的操作只是數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不能進(jìn)行業(yè)務(wù)流程的處理,也就是帶有功能操作的部分交予模型處理。例如一個(gè)購(gòu)物車的視圖只接受來(lái)自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制和模型。

        1.3 控制

        控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當(dāng)Web用戶單擊Web頁(yè)面中的提交按鈕來(lái)發(fā)送HTML表單時(shí),控制器接收請(qǐng)求并調(diào)用相應(yīng)的模型組件去處理請(qǐng)求,然后調(diào)用相應(yīng)的視圖來(lái)顯示模型返回的數(shù)據(jù)。

        控制(Controller)可以理解為從用戶接收請(qǐng)求,將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。或者簡(jiǎn)單的理解,就是程序的處理流程由它來(lái)控制。

        模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過(guò)某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無(wú)論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。模型、視圖、控制器三者之間的關(guān)系和各自的主要功能。

        2 MVC設(shè)計(jì)模式的實(shí)現(xiàn)

        Java 平臺(tái)企業(yè)版和其他的各種框架不一樣,J2EE為模型對(duì)象定義了一個(gè)規(guī)范。

        在J2EE應(yīng)用程序中,視圖可能由Java Server Page承擔(dān)。生成視圖的代碼則可能是一個(gè)servlet的一部分,特別是在客戶端服務(wù)端交互的時(shí)候。J2EE應(yīng)用中,控制器可能是一個(gè)servlet,現(xiàn)在一般用Struts實(shí)現(xiàn)。模型則是由一個(gè)實(shí)體Bean來(lái)實(shí)現(xiàn)。

        3 MVC結(jié)構(gòu)

        3.1 視圖

        視圖是模型的展現(xiàn),它提供用戶數(shù)據(jù)的交互。

        在J2EE下,視圖的實(shí)現(xiàn)很簡(jiǎn)單??梢韵耖_(kāi)發(fā)HTML界面一樣直接在集成開(kāi)發(fā)環(huán)境下通過(guò)編寫JSP頁(yè)面來(lái)完成頁(yè)面開(kāi)發(fā)本。一個(gè)頁(yè)面由多個(gè)子視圖組成;子視圖可以是最簡(jiǎn)單JSP頁(yè)面。

        視圖部分大致處理流程如下:首先,定義了頁(yè)面的布局;頁(yè)面配置文件定義視圖標(biāo)簽的具體內(nèi)容;然后,由編寫代碼.這一部分主要定義了WEB頁(yè)面基類PageBase;頁(yè)面布局策略類PageLayout,完成頁(yè)面布局,用于加載用戶部件到頁(yè)面;用戶部件基類UserControlBase即用戶部件框架,用于動(dòng)態(tài)加載檢驗(yàn)部件,以及實(shí)現(xiàn)用戶部件的個(gè)性化。為了實(shí)現(xiàn)WEB應(yīng)用的靈活性,視圖部分也用到了許多配置文件例如:置文件有模板配置、頁(yè)面配置、路徑配置、驗(yàn)證配置等。

        3.2 控制器

        控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。

        在struts中,基本的控制器組件是ActionServlet類中的實(shí)例servelt,實(shí)際使用的servlet在配置文件中由一組映射(由ActionMapping類進(jìn)行描述)進(jìn)行定義。對(duì)于業(yè)務(wù)邏輯的操作則主要由Action、ActionMapping、ActionForward這幾個(gè)組件協(xié)調(diào)完成的,其中Action扮演了真正的業(yè)務(wù)邏輯的實(shí)現(xiàn)者,ActionMapping與ActionForward則指定了不同業(yè)務(wù)邏輯或流程的運(yùn)行方向。strutsconfig.xml 文件配置控制器?,F(xiàn)在我們總結(jié)M VC的處理過(guò)程,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶。

        現(xiàn)在我們總結(jié)MVC的處理過(guò)程,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶。

        3.3 模型

        模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的3個(gè)部件中,模型擁有最多的處理任務(wù)。例如:它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對(duì)象來(lái)處理數(shù)據(jù)庫(kù)。被模型返回的數(shù)據(jù)是中立的,就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。

        業(yè)務(wù)邏輯層在體系架構(gòu)中的位置很關(guān)鍵,它處于數(shù)據(jù)訪問(wèn)層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對(duì)于上層而言是“無(wú)知”的,改變上層的設(shè)計(jì)對(duì)于其調(diào)用的底層而言沒(méi)有任何影響。如果在分層設(shè)計(jì)時(shí),遵循了面向接口設(shè)計(jì)的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個(gè)支持可抽取、可替換的“抽屜”式架構(gòu)。正因?yàn)槿绱?,業(yè)務(wù)邏輯層的設(shè)計(jì)對(duì)于一個(gè)支持可擴(kuò)展的架構(gòu)尤為關(guān)鍵,因?yàn)樗缪萘藘蓚€(gè)不同的角色。對(duì)于數(shù)據(jù)訪問(wèn)層而言,它是調(diào)用者;對(duì)于表示層而言,它卻是被調(diào)用者。依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上,如何實(shí)現(xiàn)依賴關(guān)系的解耦,則是除了實(shí)現(xiàn)業(yè)務(wù)邏輯之外留給設(shè)計(jì)師的任務(wù)。

        [1]孫衛(wèi)琴.精通STRUTS基于MVC的JavaWeb設(shè)計(jì)與開(kāi)發(fā)[M].電子工業(yè)出版社,2007,3.

        [2]占東明.基于J2EE的MVC設(shè)計(jì)模式的分析與思考[J].科技廣場(chǎng),2008,3.

        [3]林善茂.MVC設(shè)計(jì)模式.http://www.csai.cn,2007,12.

        猜你喜歡
        頁(yè)面用戶模型
        大狗熊在睡覺(jué)
        一半模型
        刷新生活的頁(yè)面
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        3D打印中的模型分割與打包
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        如何獲取一億海外用戶
        亚洲乱亚洲乱妇无码麻豆| 污污污污污污WWW网站免费| 久久久久久中文字幕有精品| 一本大道综合久久丝袜精品| 精品少妇一区二区三区免费| 国产一区二区三区免费观看在线| 天天影视色香欲综合久久| 亚洲欧美成人在线免费| 久久精品国产在热亚洲不卡| 日本一卡二卡3卡四卡免费观影2022 | 日韩精人妻无码一区二区三区| 白白色免费视频一区二区在线| 国产爆乳无码一区二区麻豆| 精品三级av无码一区| 国产精品露脸视频观看| 中文字幕亚洲精品码专区| 蜜桃网站免费在线观看视频| 97人伦色伦成人免费视频| 精品国产午夜福利在线观看| 久久精品国产亚洲av成人擦边| 国产国语按摩对白av在线观看| 成年女人粗暴毛片免费观看| 欧美激情区| 青青草视频在线播放81| 国产av无码专区亚洲av男同| 久久精品国产亚洲av蜜臀| 国产69口爆吞精在线视频喝尿| 日韩有码中文字幕在线视频| 亚洲偷自拍国综合第一页| 特级精品毛片免费观看| 伊人久久成人成综合网222| av最新版天堂在资源在线| 色佬精品免费在线视频| 少妇做爰免费视频网站| 妺妺窝人体色www聚色窝| 亚洲精品国产亚洲av| 中文区中文字幕免费看| 亚洲av高清在线一区二区三区| 精品 无码 国产观看| 亚洲发给我的在线视频| 国产精品成熟老女人|