亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 191.txt

?? 中文文本分類的語料庫
?? TXT
字號(hào):
日月光華 -- SE精華區(qū)文章閱讀
--------------------------------------------------------------------------------
 發(fā)信人: Jove (死生契闊,與子相悅,執(zhí)子之手,與子偕老), 信區(qū): SE
標(biāo)  題: [zz]MVC減少編程復(fù)雜性 
發(fā)信站: 日月光華 (2003年04月20日21:16:03 星期天), 站內(nèi)信件

MVC減少編程復(fù)雜性 

  隨著面向?qū)ο蟮恼Z言(如Java)的迅速發(fā)展和普及,越來越多的編程人員開始在應(yīng)
用開發(fā)中使用這些語言。然而原有的開發(fā)語 
言(即面向操作的開發(fā)語言如C++等)在短時(shí)間內(nèi)還不可能退出歷史舞臺(tái),因此現(xiàn)在就
出現(xiàn)了面向?qū)ο蟮恼Z言和傳統(tǒng)的面向操作的 
語言共存的局面。在設(shè)計(jì)應(yīng)用中同時(shí)使用兩類不同的語言(混合語言設(shè)計(jì))比過去只使
用一類語言會(huì)帶來許多新的問題,其中復(fù)雜 
性就是混合語言設(shè)計(jì)中最經(jīng)常遇到的問題。下面我們探討混合語言設(shè)計(jì)中可能導(dǎo)致復(fù)雜
性增加的地方,以及如何減少以至消除這些 
復(fù)雜性。 

  復(fù)雜性 

  復(fù)雜性是應(yīng)用開發(fā)過程中最令人頭疼的一個(gè)問題。每當(dāng)在一個(gè)應(yīng)用中增加一個(gè)功能
時(shí),它的復(fù)雜性通常呈幾何級的增長。這種 
復(fù)雜性往往導(dǎo)致程序的開發(fā)無法再繼續(xù)下去。這也是現(xiàn)在為什么許多應(yīng)用只有Beta版本
而沒有正式版的原因。 

  專家將應(yīng)用開發(fā)過程產(chǎn)生的復(fù)雜性分為兩類,即非本質(zhì)的(accidental)和本質(zhì)的
(essential)。本質(zhì)的復(fù)雜性是對于解決目 
標(biāo)問題所必然產(chǎn)生的復(fù)雜性,非本質(zhì)的復(fù)雜性是由于選擇了不適當(dāng)?shù)拈_發(fā)工具和設(shè)計(jì)工
具而產(chǎn)生的復(fù)雜性。對于一個(gè)功能確定的程 
序來講,本質(zhì)的復(fù)雜性是確定的,而非本質(zhì)的復(fù)雜性則是沒有限制的。因此,一個(gè)應(yīng)用
的開發(fā)要想較順利地取得成功,就需要盡可 
能地減少非本質(zhì)的復(fù)雜性。 

  OOD的特點(diǎn) 

  面向?qū)ο蟮脑O(shè)計(jì)(OOD)將一個(gè)程序分解成根據(jù)具體的對象而設(shè)計(jì)的一系列元素。這
些具體對象的行為和數(shù)據(jù)以一種叫做“類 
(class)”的編程單元進(jìn)行打包。應(yīng)用程序創(chuàng)建一個(gè)或多個(gè)這些類的例示,也稱為“對
象(object)”。類的行為是通過創(chuàng)建對象 
之間的關(guān)系組合在一起的。 

  OOD允許開發(fā)者用兩種主要的方法來控制復(fù)雜性的增加。第一,OOD定義嚴(yán)格的出口
語義,這允許開發(fā)者隱藏實(shí)現(xiàn)的細(xì)節(jié),并且 
明確說明什么方法是其它的對象可以訪問的。這個(gè)信息隱藏使得可以對大部分的代碼進(jìn)
行修改而不影響其它的對象。 

  第二,OOD將對象之間的關(guān)系分為四類:繼承、包容、使用和協(xié)調(diào)。適當(dāng)?shù)厥褂眠@些
關(guān)系可以大大減少應(yīng)用開發(fā)過程中本質(zhì)的和 
非本質(zhì)的復(fù)雜性。如,繼承是產(chǎn)生面向?qū)ο笤O(shè)計(jì)中可再使用的主要因素。這個(gè)再使用性
是通過代碼共享和多態(tài)性獲得的。這種再使 
用可以大大減少應(yīng)用的本質(zhì)的復(fù)雜性。包容允許一個(gè)類的用戶在使用包容器時(shí)忽略被包
容的類(class)。這個(gè)簡化使設(shè)計(jì)者能夠大 
大減少應(yīng)用的非本質(zhì)的復(fù)雜性。 

  可視化接口在OOD方面的不足 

  許多程序都需要可視化接口,這些接口由對話框、選單、工具條等組成。這些可視
化接口的增加會(huì)引進(jìn)OOD設(shè)計(jì)的不足,使得一 
個(gè)好的面向?qū)ο蟮脑O(shè)計(jì)走向反面。可視化接口有三個(gè)屬性可能會(huì)給應(yīng)用開發(fā)帶來麻煩。 

  第一,可視化接口提高了傳統(tǒng)的面向操作的拓?fù)浣Y(jié)構(gòu)。用戶產(chǎn)生接口事件,如開關(guān)
按鍵和列表框選擇等,受到程序的一個(gè)模塊 
的驅(qū)動(dòng)并且用來對靜態(tài)的數(shù)據(jù)進(jìn)行操作。在設(shè)計(jì)中將這面向操作的拓?fù)浣Y(jié)構(gòu)同一個(gè)面向
對象的設(shè)計(jì)混合在一起將導(dǎo)致對象之間的大 
量的雜合。 

  第二,用戶接口通常對于同樣的信息經(jīng)常會(huì)需要許多不同的顯示。如,一個(gè)客戶選
擇列表框可以包含一個(gè)客戶的名字和電話號(hào) 
碼以及許多其它客戶的名字。 

  當(dāng)用戶選擇某個(gè)特定的客戶后,他/她的名字和電話號(hào)碼及其它全部相關(guān)的信息都
會(huì)詳細(xì)地顯示出來。 

  除此之外,一個(gè)簡單的程序可能具有不同的用戶接口。如一個(gè)銀行賬戶系統(tǒng)有一個(gè)
接口用于出納員來訪問賬戶平衡、存款和取 
款,而監(jiān)督者的接口則包含另外的信息并加上賬號(hào)管理的功能。這些不同的接口很容易
導(dǎo)致類的擴(kuò)展。 

  最后,可視化接口在整個(gè)設(shè)計(jì)階段還會(huì)進(jìn)行較大的改變。這些改變包括完全重新安
排用戶與系統(tǒng)的交互操作等。可視化接口的 
這些改變即使在最好的設(shè)計(jì)中也會(huì)增加應(yīng)用開發(fā)的復(fù)雜性。 

  MVC彌補(bǔ)可視化接口/OOD的不足 

  模型/界面/控制器(Model/View/Controller,MVC)編程技術(shù)允許一個(gè)開發(fā)者
將一個(gè)可視化接口連接到一個(gè)面向?qū)ο蟮脑O(shè) 
計(jì)中,而同時(shí)還可以避免我們上面討論的幾個(gè)問題。MVC最初是為Smalltalk語言而設(shè)計(jì)
的。MVC通過創(chuàng)建下面三個(gè)層將面向?qū)ο蟮脑O(shè) 
計(jì)與可視化接口分開: 

  模型(Model):模型包含完成任務(wù)所需要的所有的行為和數(shù)據(jù)。模型一般由許多類
組成并且使用面向?qū)ο蟮募夹g(shù)來創(chuàng)建滿足五 
個(gè)設(shè)計(jì)目標(biāo)的程序。 

  界面(View):一個(gè)界面就是一個(gè)程序的可視化元素,如對話框、選單、工具條等
。界面顯示從模型中提供的數(shù)據(jù),它并不控 
制數(shù)據(jù)或提供除顯示外的其它行為。一個(gè)單一的程序或模型一般有兩種界面行為。 

  控制器(Controller):控制器將模型映射到界面中。控制器處理用戶的輸入,每
個(gè)界面有一個(gè)控制器。它是一個(gè)接收用戶輸 
入、創(chuàng)建或修改適當(dāng)?shù)哪P蛯ο蟛⑶覍⑿薷脑诮缑嬷畜w現(xiàn)出來的狀態(tài)機(jī)。控制器在需要
時(shí)還負(fù)責(zé)創(chuàng)建其它的界面和控制器。 

  控制器一直決定哪些界面和模型組件應(yīng)該在某個(gè)給定的時(shí)刻是活動(dòng)的,它一直負(fù)責(zé)
接收和處理用戶的輸入,來自用戶輸入的任 
何變化都被從控制器送到模型。 

  界面從模型內(nèi)的對象中顯示數(shù)據(jù)。這些對象的改變可以通過也可以不通過用戶的交
互操作來完成。如:在一個(gè)Web瀏覽器中負(fù)責(zé) 
接收頁面的對象收集和裝配棧中的信息,必須有某種方式來讓這些對象通知界面數(shù)據(jù)已
經(jīng)被改變了。在模型變化時(shí)有兩種方法來對 
界面進(jìn)行更新。 

  在第一種方法中,界面可以告訴模型它正在監(jiān)視哪些對象。當(dāng)這些對象中有任何一
個(gè)發(fā)生變化時(shí),一個(gè)信息就被發(fā)送給界面。 
界面接收這些信息并且相應(yīng)地進(jìn)行更新。為了避免我們上面討論的不足,模型必須能夠
不用修改就支持許多種不同的界面顯示。 

  第二個(gè)方法并不直接將界面連接到模型中,它的控制器負(fù)責(zé)在模型變化時(shí)更新界面
。控制器通過對模型對象或觀察器方法進(jìn)行 
監(jiān)測來檢測模型中的變化。這個(gè)方法不用了解界面的模型知識(shí),因此界面就變成是可以
跨應(yīng)用使用的。 

  使用MVC的優(yōu)點(diǎn) 

  MVC通過以下三種方式消除與用戶接口和面向?qū)ο蟮脑O(shè)計(jì)有關(guān)的絕大部分困難: 

  第一,控制器通過一個(gè)狀態(tài)機(jī)跟蹤和處理面向操作的用戶事件。這允許控制器在必
要時(shí)創(chuàng)建和破壞來自模型的對象,并且將面 
向操作的拓?fù)浣Y(jié)構(gòu)與面向?qū)ο蟮脑O(shè)計(jì)隔離開來。這個(gè)隔離有助于防止面向?qū)ο蟮脑O(shè)計(jì)走
向反面。 

  第二,MVC將用戶接口與面向?qū)ο蟮哪P头珠_。這允許同樣的模型不用修改就可使用
許多不同的界面顯示方式。除此之外,如果 
模型更新由控制器完成,那么界面就可以跨應(yīng)用再使用。 

  最后,MVC允許應(yīng)用的用戶接口進(jìn)行大的變化而不影響模型。每個(gè)用戶接口的變化將
只需要對控制器進(jìn)行修改,但是既然控制器 
包含很少的實(shí)際行為,它是很容易修改的。 

  面向?qū)ο蟮脑O(shè)計(jì)人員在將一個(gè)可視化接口添加到一個(gè)面向?qū)ο蟮脑O(shè)計(jì)中時(shí)必須非常
小心,因?yàn)榭梢暬涌诘拿嫦虿僮鞯耐負(fù)浣Y(jié) 
構(gòu)可以大大增加設(shè)計(jì)的復(fù)雜性。 

  MVC設(shè)計(jì)允許一個(gè)開發(fā)者將一個(gè)好的面向?qū)ο蟮脑O(shè)計(jì)與用戶接口隔離開來,允許在同
樣的模型中容易地使用多個(gè)接口,并且允許 
在實(shí)現(xiàn)階段對接口作大的修改而不需要對相應(yīng)的模型進(jìn)行修改。 

--
"I'm not a great programmer; I'm just a good programmer with great habits".
                                                                 ---Kent Beck
※ 來源:·日月光華 bbs.fudan.edu.cn·[FROM: 10.85.38.144]

 

--------------------------------------------------------------------------------
[返回上一頁] [本討論區(qū)]

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合一二三区| 中文字幕二三区不卡| 日韩主播视频在线| 91免费视频观看| 一区2区3区在线看| 欧美日韩aaaaaa| 精品一区二区三区久久| 国产日韩精品一区二区三区在线| 国产成人免费视频精品含羞草妖精 | 欧美国产日产图区| 欧美亚洲国产怡红院影院| 亚洲一级片在线观看| 欧美一级二级三级乱码| 精品夜夜嗨av一区二区三区| 久久精品一区蜜桃臀影院| 成人高清免费在线播放| 亚洲丰满少妇videoshd| 久久先锋影音av| 色天使色偷偷av一区二区| 亚洲一区在线电影| 久久人人超碰精品| 色婷婷久久久综合中文字幕| 免费视频一区二区| 国产精品久久久久久久久免费桃花| 在线观看免费亚洲| 激情综合网天天干| 亚洲精品你懂的| 日韩女优毛片在线| 91一区二区三区在线播放| 日本成人在线电影网| 国产精品国产三级国产普通话蜜臀 | 国产日韩影视精品| 欧美亚洲国产一区在线观看网站| 激情综合色丁香一区二区| 亚洲欧洲综合另类| 久久免费偷拍视频| 欧美裸体bbwbbwbbw| 成人美女视频在线观看18| 日日欢夜夜爽一区| 亚洲精品国产无套在线观| 国产亚洲制服色| 欧美疯狂做受xxxx富婆| av一区二区三区四区| 久久国产精品72免费观看| 亚洲精品国产品国语在线app| 欧美精品一区二区三区在线| 在线观看www91| 成人亚洲一区二区一| 美国精品在线观看| 五月综合激情日本mⅴ| 亚洲欧美另类久久久精品2019| 欧美成人激情免费网| 欧美日韩国产123区| 91同城在线观看| 成人性视频免费网站| 精品亚洲成a人| 三级亚洲高清视频| 亚洲成a天堂v人片| 一二三区精品视频| 亚洲精品视频自拍| 亚洲欧美日韩系列| 国产精品女人毛片| 欧美激情一区二区三区| 久久久另类综合| 精品国产一区二区三区久久久蜜月 | 麻豆久久久久久久| 亚洲成a人v欧美综合天堂| 亚洲欧美日韩综合aⅴ视频| 欧美激情一区二区三区不卡| 国产三级一区二区| 日本一区二区三区四区| 国产午夜三级一区二区三| 国产午夜精品久久久久久久 | 91精品国产色综合久久| 欧美日韩国产高清一区二区| 精品视频在线看| 这里只有精品电影| 日韩一区二区在线观看| 91精品婷婷国产综合久久竹菊| 欧美日韩精品一区二区三区 | 色综合久久综合| 91在线视频免费观看| 日本乱人伦一区| 在线观看免费亚洲| 制服丝袜亚洲网站| 久久午夜免费电影| 国产精品乱码人人做人人爱 | 日韩欧美美女一区二区三区| 日韩欧美色综合| 久久久不卡网国产精品一区| 国产精品网曝门| 亚洲精品美国一| 亚洲成人777| 寂寞少妇一区二区三区| 风间由美一区二区av101| 97精品视频在线观看自产线路二 | 欧美高清精品3d| 精品乱人伦小说| 中文在线一区二区| 亚洲欧美影音先锋| 日韩国产一二三区| 国产成人免费视频| 精品视频1区2区| 精品国产凹凸成av人网站| 国产精品久久午夜夜伦鲁鲁| 亚洲一区二区在线视频| 美女视频黄 久久| proumb性欧美在线观看| 欧美揉bbbbb揉bbbbb| 26uuu国产电影一区二区| 中文字幕佐山爱一区二区免费| 婷婷一区二区三区| 国产91精品一区二区| 欧美精品 日韩| 国产精品美女久久久久久久久 | 亚洲精品一区二区三区福利| 亚洲日本一区二区三区| 午夜精品久久久久久久久久| 国产九九视频一区二区三区| 在线观看国产一区二区| 久久久精品欧美丰满| 午夜精品免费在线| 99精品视频中文字幕| 精品国产不卡一区二区三区| 亚洲一区二区偷拍精品| 激情小说欧美图片| 欧美人牲a欧美精品| 国产精品女人毛片| 九一久久久久久| 欧美亚洲国产一区在线观看网站| 久久伊99综合婷婷久久伊| 亚洲高清免费视频| 99精品国产99久久久久久白柏| 精品久久久久久无| 香蕉av福利精品导航| 99久久婷婷国产精品综合| 精品国产乱码久久久久久影片| 亚洲一区在线电影| 96av麻豆蜜桃一区二区| 久久久综合视频| 天堂午夜影视日韩欧美一区二区| 91一区二区在线观看| 国产精品视频九色porn| 极品美女销魂一区二区三区| 欧美欧美欧美欧美| 性做久久久久久免费观看| 97国产一区二区| 国产精品麻豆99久久久久久| 国产麻豆午夜三级精品| 日韩欧美一区二区视频| 日本免费新一区视频| 欧美日韩免费观看一区二区三区| 国产精品久久影院| 成人精品一区二区三区中文字幕| 久久亚洲精华国产精华液| 久久精品噜噜噜成人av农村| 717成人午夜免费福利电影| 亚洲一区二区三区自拍| 91久久精品国产91性色tv| 亚洲欧洲精品一区二区精品久久久| 国产丶欧美丶日本不卡视频| 日韩精品在线一区二区| 欧美a一区二区| 日韩欧美一区二区在线视频| 日韩成人av影视| 欧美一级在线免费| 欧美aⅴ一区二区三区视频| 制服丝袜中文字幕一区| 久久97超碰色| 精品国产凹凸成av人导航| 国产精品综合二区| 国产色产综合色产在线视频| 成人午夜精品在线| 国产精品乱子久久久久| 91亚洲精品久久久蜜桃网站| 亚洲欧美日韩久久精品| 欧美日韩精品福利| 视频精品一区二区| 精品国产91久久久久久久妲己| 国产美女娇喘av呻吟久久| 日本一二三四高清不卡| 色婷婷综合久久久| 午夜欧美一区二区三区在线播放| 日韩午夜在线影院| 国产成人精品网址| 亚洲欧美日韩中文播放| 在线不卡欧美精品一区二区三区| 免费成人av资源网| 久久久www成人免费无遮挡大片| 成人av资源网站| 亚洲国产中文字幕| 精品久久一区二区| 成+人+亚洲+综合天堂| 一区二区久久久久| 精品三级av在线| 91亚洲精品一区二区乱码| 首页欧美精品中文字幕| 国产调教视频一区| 欧美视频完全免费看| 国产中文字幕精品|