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

MVC設計模式應用問題探討

2013-08-03 01:30:36王亞萍張紅霞
山東工業技術 2013年15期
關鍵詞:頁面內容功能

王亞萍 張紅霞

(河南農業職業學院,河南 中牟451450)

1 定義闡述

MVC 設計模式: 是一種架構型設計模式, 它本身不引入新的功能,只是指導我們把Web 應用結構做的更加合理,實現邏輯與頁面相分離。

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

架構型設計模式:結構性的設計模式,只是讓程序更具有結構化。

Java 中MVC 來源思路及進化過程:Servlet =Java + HTML 字符串,問題產生了,由于拼字符串太麻煩→解決方案:HTML 獨立出來從而得到→JSP≈HTML+Java 腳本(問題又產生了,能解決Servlet 問題,但是帶來了頁面和邏輯混雜)→解決方案:MVC(指導我們讓Web 應用程序結構更加合理)。

2 MVC 三部分內容及各部分功能如下

①Model:VO+邏輯層:可以理解為后臺部分。

功能:封裝應用狀態、響應狀態查詢、暴露應用功能。

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

功能:產生HTML 響應、請求模型更新、提供HTML 表單用于用戶請求。

對比: 純jsp 頁面中事件處理與頁面展示混雜在一起,MVC 中事件處理由Controller 承擔,從而達到邏輯與頁面相分離的效果。

③Controller:事件處理過程。

功能:驗證HTML 請求的數據、將用戶數據與模型更新相映射、選擇用于響應的視圖。

3 MVC 演化過程及示例

View 用戶請求到控制器,控制器狀態改變通知Model,Model 主動通知View 說Model 自身已改變,View 主動去Model 里面去狀態查詢。

下面先看個標準的MVC 單機版的示例:

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

觀察者設計模式Java 代碼示例的如下:

(1)根據前面的內容抽象,首先必須有個被觀察的對象,即目標對象叫做MySubject.java:

觀察者觀察的為目標對象的內容Content, 當內容改變了即有人setContent 需要通知所有的觀察者。

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

MyObserver 實現一個update 回調方法, 即MyObserver 去觀察MySubject,觀察到后采取的處理即這個update 方法。 這里的觀察者又有兩種模型,一種是被觀察者主動推過來的消息即推模型,另一種就是觀察者主動去拉內容即拉模型。 其實觀察者模式也叫出版訂閱模式,推模型即訂報的意思,即報刊發行商將報紙送上門服務,拉模型即某個時刻大家主動去報刊亭買報的這種模型。

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

首先創建一個目標對象,然后創建三個觀察者,然后注冊觀察者相當于訂報紙,然后報社出報紙即內容改變時觸發觀察者,當被觀察的對象改變時需要通知觀察者也即對應MySubject.java。

代碼輸出結果:

wwu 推過來的====null

wwu 主動去拉====觀察者模式

lsi 推過來的====null

lsi 主動去拉====觀察者模式

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

③改進的版的MVC

在Java WEB 開發中會產生一個問題: 就是為什么Model 會主動通知View 自身已經改變了呢?因為Java 中標準的MVC 起源于Swing,這種標準的MVC 只能適應于單機版,在WEB 開發中無法實現,因為WEB 是基于請求應答模式的環境,Model 不會在沒有請求的情況下直接通知View 自身的改變。

在實際開發WEB 應用的時候, 由于無法按照標準的MVC 去實現,通常我們會把邏輯部分轉移到邏輯層去實現,所以Model 就退變成只用來封裝數據,也就是我們常寫的VO;此時View 一般不直接和邏輯層交互,所有跟邏輯層的交互都由控制器來實現,View 只和控制器交互。

改進版后的MVC 一般實現方式:View 用JSP 來實現,Controller由Servlet 來實現,Model 由JavaBean 來實現。

[1][美]Robert Lafore.計曉云,趙研,等譯.Java 數據結構與算法[M].北京:中國電力出版社,2003.

猜你喜歡
頁面內容功能
大狗熊在睡覺
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
內容回顧溫故知新
科學大眾(2022年11期)2022-06-21 09:20:52
關于非首都功能疏解的幾點思考
主要內容
臺聲(2016年2期)2016-09-16 01:06:53
中西醫結合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應用
同一Word文檔 縱橫頁面并存
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 露脸一二三区国语对白| 精品福利网| AV不卡国产在线观看| 欧美人与性动交a欧美精品| 国产小视频a在线观看| 夜夜拍夜夜爽| 久久成人国产精品免费软件 | 欧美人在线一区二区三区| 久久久久青草大香线综合精品| 丁香五月婷婷激情基地| 91香蕉视频下载网站| 国产精品视频白浆免费视频| 亚洲av片在线免费观看| 亚洲综合久久成人AV| 久久香蕉国产线看观看精品蕉| 亚洲综合经典在线一区二区| 亚洲一区二区约美女探花| 午夜福利无码一区二区| 国产精品三区四区| 亚欧美国产综合| 日韩精品一区二区三区免费在线观看| 国产精品久久久久久久久久久久| 国产精品午夜福利麻豆| 91精品网站| 欧美综合在线观看| 波多野结衣一区二区三视频| 欧美色香蕉| 人妻丰满熟妇av五码区| 日韩欧美国产精品| 欧美一级高清免费a| 色噜噜狠狠狠综合曰曰曰| 色噜噜中文网| 国产微拍一区二区三区四区| 亚洲人成网站观看在线观看| 久久久久无码精品| 91蜜芽尤物福利在线观看| 91精品国产麻豆国产自产在线| 国产成人av大片在线播放| 久久婷婷综合色一区二区| 天天操天天噜| 亚洲婷婷在线视频| 久久精品一品道久久精品| 国产99视频精品免费观看9e| 欧美区一区| 亚洲AⅤ永久无码精品毛片| 久久综合AV免费观看| 波多野结衣中文字幕一区二区| 久久国产亚洲欧美日韩精品| 国产免费久久精品99re不卡| 国产美女精品一区二区| 伊人久久久久久久| 超清人妻系列无码专区| 午夜性刺激在线观看免费| 日韩欧美亚洲国产成人综合| 97在线免费视频| 日韩午夜片| 免费国产无遮挡又黄又爽| 99精品在线视频观看| 黄色国产在线| 久久精品免费国产大片| 97国产在线视频| 欧美一级专区免费大片| 欧美一区精品| AV熟女乱| 欧美高清国产| 五月天综合网亚洲综合天堂网| 99尹人香蕉国产免费天天拍| 国产高清精品在线91| 最新午夜男女福利片视频| 波多野结衣视频一区二区| 国产成本人片免费a∨短片| 欧美精品另类| 在线国产你懂的| 97视频精品全国免费观看| 国产浮力第一页永久地址| 国产91麻豆免费观看| 欧美色视频网站| 欧美日韩一区二区三区四区在线观看| 四虎影视无码永久免费观看| 国产精品19p| 男人天堂伊人网| 一区二区理伦视频|