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

MVC設(shè)計(jì)模式應(yīng)用問題探討

2013-08-03 01:30:36王亞萍張紅霞
山東工業(yè)技術(shù) 2013年15期
關(guān)鍵詞:頁(yè)面內(nèi)容功能

王亞萍 張紅霞

(河南農(nóng)業(yè)職業(yè)學(xué)院,河南 中牟451450)

1 定義闡述

MVC 設(shè)計(jì)模式: 是一種架構(gòu)型設(shè)計(jì)模式, 它本身不引入新的功能,只是指導(dǎo)我們把Web 應(yīng)用結(jié)構(gòu)做的更加合理,實(shí)現(xiàn)邏輯與頁(yè)面相分離。

功能型設(shè)計(jì)模式:如單例(保證類的實(shí)例唯一)、工廠(選擇實(shí)現(xiàn))、值對(duì)象(封裝數(shù)據(jù))、DAO(屏蔽變化)等等。

架構(gòu)型設(shè)計(jì)模式:結(jié)構(gòu)性的設(shè)計(jì)模式,只是讓程序更具有結(jié)構(gòu)化。

Java 中MVC 來源思路及進(jìn)化過程:Servlet =Java + HTML 字符串,問題產(chǎn)生了,由于拼字符串太麻煩→解決方案:HTML 獨(dú)立出來從而得到→JSP≈HTML+Java 腳本(問題又產(chǎn)生了,能解決Servlet 問題,但是帶來了頁(yè)面和邏輯混雜)→解決方案:MVC(指導(dǎo)我們讓W(xué)eb 應(yīng)用程序結(jié)構(gòu)更加合理)。

2 MVC 三部分內(nèi)容及各部分功能如下

①M(fèi)odel:VO+邏輯層:可以理解為后臺(tái)部分。

功能:封裝應(yīng)用狀態(tài)、響應(yīng)狀態(tài)查詢、暴露應(yīng)用功能。

②View:視圖層的三大功能,典型的如修改頁(yè)面,觸發(fā)事件而不處理,純jsp 自己處理,提交給Controller 處理。

功能:產(chǎn)生HTML 響應(yīng)、請(qǐng)求模型更新、提供HTML 表單用于用戶請(qǐng)求。

對(duì)比: 純jsp 頁(yè)面中事件處理與頁(yè)面展示混雜在一起,MVC 中事件處理由Controller 承擔(dān),從而達(dá)到邏輯與頁(yè)面相分離的效果。

③Controller:事件處理過程。

功能:驗(yàn)證HTML 請(qǐng)求的數(shù)據(jù)、將用戶數(shù)據(jù)與模型更新相映射、選擇用于響應(yīng)的視圖。

3 MVC 演化過程及示例

View 用戶請(qǐng)求到控制器,控制器狀態(tài)改變通知Model,Model 主動(dòng)通知View 說Model 自身已改變,View 主動(dòng)去Model 里面去狀態(tài)查詢。

下面先看個(gè)標(biāo)準(zhǔn)的MVC 單機(jī)版的示例:

Eclipse 本身就是基于MVC 做的,例如當(dāng)我們打開Eclipse 時(shí)修改編輯區(qū)的代碼時(shí),左邊的Navigator 視圖和右邊的Outline 視圖等都會(huì)自動(dòng)更新而隨著編輯區(qū)的代碼改變而改變。實(shí)際上這些窗口觀察的都是同一個(gè)Model,即觀察XX.java 代碼文件的內(nèi)容,這種多個(gè)View 觀察者觀察同一個(gè)Model 文件的在設(shè)計(jì)模式中也有個(gè)設(shè)計(jì)模式與其對(duì)應(yīng)即觀察者設(shè)計(jì)模式。

觀察者設(shè)計(jì)模式Java 代碼示例的如下:

(1)根據(jù)前面的內(nèi)容抽象,首先必須有個(gè)被觀察的對(duì)象,即目標(biāo)對(duì)象叫做MySubject.java:

觀察者觀察的為目標(biāo)對(duì)象的內(nèi)容Content, 當(dāng)內(nèi)容改變了即有人setContent 需要通知所有的觀察者。

(2)其次應(yīng)該有些觀察者,叫做MyObserver:

MyObserver 實(shí)現(xiàn)一個(gè)update 回調(diào)方法, 即MyObserver 去觀察MySubject,觀察到后采取的處理即這個(gè)update 方法。 這里的觀察者又有兩種模型,一種是被觀察者主動(dòng)推過來的消息即推模型,另一種就是觀察者主動(dòng)去拉內(nèi)容即拉模型。 其實(shí)觀察者模式也叫出版訂閱模式,推模型即訂報(bào)的意思,即報(bào)刊發(fā)行商將報(bào)紙送上門服務(wù),拉模型即某個(gè)時(shí)刻大家主動(dòng)去報(bào)刊亭買報(bào)的這種模型。

(3)客戶端測(cè)試代碼,Client.java:

首先創(chuàng)建一個(gè)目標(biāo)對(duì)象,然后創(chuàng)建三個(gè)觀察者,然后注冊(cè)觀察者相當(dāng)于訂報(bào)紙,然后報(bào)社出報(bào)紙即內(nèi)容改變時(shí)觸發(fā)觀察者,當(dāng)被觀察的對(duì)象改變時(shí)需要通知觀察者也即對(duì)應(yīng)MySubject.java。

代碼輸出結(jié)果:

wwu 推過來的====null

wwu 主動(dòng)去拉====觀察者模式

lsi 推過來的====null

lsi 主動(dòng)去拉====觀察者模式

當(dāng)將Client.java 文件中的MyObserver ob2=new MyObserver("lsi");、和subject.addObserver(ob2);注釋掉時(shí),輸出結(jié)果中間2 行隨之也不顯示出來,即所謂的lis 退訂。

③改進(jìn)的版的MVC

在Java WEB 開發(fā)中會(huì)產(chǎn)生一個(gè)問題: 就是為什么Model 會(huì)主動(dòng)通知View 自身已經(jīng)改變了呢?因?yàn)镴ava 中標(biāo)準(zhǔn)的MVC 起源于Swing,這種標(biāo)準(zhǔn)的MVC 只能適應(yīng)于單機(jī)版,在WEB 開發(fā)中無法實(shí)現(xiàn),因?yàn)閃EB 是基于請(qǐng)求應(yīng)答模式的環(huán)境,Model 不會(huì)在沒有請(qǐng)求的情況下直接通知View 自身的改變。

在實(shí)際開發(fā)WEB 應(yīng)用的時(shí)候, 由于無法按照標(biāo)準(zhǔn)的MVC 去實(shí)現(xiàn),通常我們會(huì)把邏輯部分轉(zhuǎn)移到邏輯層去實(shí)現(xiàn),所以Model 就退變成只用來封裝數(shù)據(jù),也就是我們常寫的VO;此時(shí)View 一般不直接和邏輯層交互,所有跟邏輯層的交互都由控制器來實(shí)現(xiàn),View 只和控制器交互。

改進(jìn)版后的MVC 一般實(shí)現(xiàn)方式:View 用JSP 來實(shí)現(xiàn),Controller由Servlet 來實(shí)現(xiàn),Model 由JavaBean 來實(shí)現(xiàn)。

[1][美]Robert Lafore.計(jì)曉云,趙研,等譯.Java 數(shù)據(jù)結(jié)構(gòu)與算法[M].北京:中國(guó)電力出版社,2003.

猜你喜歡
頁(yè)面內(nèi)容功能
大狗熊在睡覺
也談詩(shī)的“功能”
刷新生活的頁(yè)面
內(nèi)容回顧溫故知新
關(guān)于非首都功能疏解的幾點(diǎn)思考
主要內(nèi)容
臺(tái)聲(2016年2期)2016-09-16 01:06:53
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
同一Word文檔 縱橫頁(yè)面并存
淺析ASP.NET頁(yè)面導(dǎo)航技術(shù)
主站蜘蛛池模板: 国产精品午夜福利麻豆| 欧美在线视频a| 99er精品视频| 免费a在线观看播放| 色国产视频| 欧美成人亚洲综合精品欧美激情| 亚洲人成在线精品| 中文字幕va| 欧美在线一级片| 欧美国产在线精品17p| 秋霞国产在线| 日本五区在线不卡精品| 2021国产精品自产拍在线观看| 91在线精品麻豆欧美在线| 久久综合九色综合97婷婷| 久久精品无码国产一区二区三区 | 国内精品九九久久久精品| 欧美三级自拍| 国产黄在线观看| 亚洲天堂成人在线观看| 国产精品九九视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 久久99久久无码毛片一区二区| 久久伊人久久亚洲综合| 少妇精品网站| 美女裸体18禁网站| 就去吻亚洲精品国产欧美| 国产av剧情无码精品色午夜| 亚洲成人免费看| 波多野结衣第一页| 亚洲成人在线免费观看| 在线观看免费国产| 国产素人在线| 国产综合精品一区二区| 久久www视频| 欧美在线黄| 亚洲第一综合天堂另类专| 国产免费久久精品99re不卡 | 毛片在线看网站| 天堂av综合网| 91无码人妻精品一区二区蜜桃| 亚洲精品另类| 天天综合亚洲| 午夜免费小视频| 在线精品自拍| 中文天堂在线视频| 久久久久夜色精品波多野结衣| 国产亚洲精品资源在线26u| 美女无遮挡免费网站| 美女视频黄频a免费高清不卡| 久久国产黑丝袜视频| 亚洲午夜天堂| 中文成人在线| 性视频久久| 精品人妻AV区| 国产福利免费视频| 99国产精品国产高清一区二区| 91成人免费观看| 伊人久久婷婷五月综合97色| 久热中文字幕在线| 亚洲aaa视频| 成人免费网站在线观看| 成人免费午夜视频| 蜜桃视频一区| 一本大道香蕉高清久久| 在线亚洲小视频| 久久精品91麻豆| 综合色在线| 成人毛片免费观看| 天堂中文在线资源| 就去吻亚洲精品国产欧美| 亚洲一欧洲中文字幕在线| 久草视频精品| 2018日日摸夜夜添狠狠躁| 国产视频只有无码精品| 亚洲第一成年网| 少妇被粗大的猛烈进出免费视频| 一级毛片免费的| 美女毛片在线| 亚洲乱码视频| www中文字幕在线观看| 亚洲精品麻豆|