下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MOVE開發(fā)模式 MVC模式在 編程中的應(yīng)用,是一個(gè)很了不起的主意?!皵?shù)據(jù)模型( Model ) ”可以 封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)及對(duì)數(shù)據(jù)的處理方法;“視圖層(View ) ”能夠?qū)?現(xiàn)數(shù)據(jù)有目的的顯示;“控制器(Con troller ) ”能夠在不同層面間起到組織作用,對(duì)應(yīng)用 程序的流程進(jìn)行控制。 不過(guò),可能你在使用這種三層架構(gòu)模式的過(guò)程中會(huì)逐漸迷惑。因?yàn)橛泻芏啻a你不知道 把它放哪,就只好把它放到控制層,最后發(fā)現(xiàn)在控制層中塞了太多的代碼。 Linkedln的軟件工程師Conrad Irwin 也遇到同樣的問(wèn)題,于是他開始使用另一種模式: MOVE,即 Models (模型)、O
2、perations (操作)、Views (視圖)、Events (事件)。近日 Conrad Irwin 在個(gè)人博客上分享了關(guān)于這種模式的一些觀點(diǎn)。 概述 Irwin結(jié)合上圖對(duì)MOVE模式先作了簡(jiǎn)單定義: Models,封裝該應(yīng)用程序中知道的一切; Operations ,封裝該應(yīng)用程序要做的一切; Views,幫助用戶與應(yīng)用程序完成交互; Events,用于安全地連接所有這些組件。 為了避免意大利面條式的代碼,圖中標(biāo)示出了對(duì)哪種類型的對(duì)象進(jìn)行操作是允許的。例 如,視圖允許監(jiān)聽由模型產(chǎn)生的事件;操作允許修改模型,但模型不應(yīng)涉及視圖或操作。 Models (模型) 這里以一個(gè)“User ”對(duì)象
3、為原型,它至少應(yīng)用有一個(gè)Email地址,也可能有用戶名和 電話號(hào)碼。 在一個(gè)MOVE模式的Models中只包裝知識(shí)。這意味著除了Get和Set功能,它們可 以包含檢查用戶密碼是否正確這樣的方法,但不會(huì)包含把密碼保存到數(shù)據(jù)庫(kù)或傳遞給外部 API這樣的功能,因?yàn)楹竺孢@些工作將由Operations 來(lái)完成。 Operati ons(操作) 對(duì)應(yīng)用程序來(lái)說(shuō),一個(gè)常見的操作是用戶登陸。這實(shí)際上是由兩個(gè)子操作組成:首先從 用戶那里獲得郵件地址和密碼,然后從數(shù)據(jù)庫(kù)載入“user ”模型并檢查密碼是否匹配。 Operations 是MOVE模式中的行動(dòng)者。它負(fù)責(zé)修改模型,在正確的時(shí)間顯示正確的 視圖,以及響
4、應(yīng)由用戶交互引發(fā)的事件。在一個(gè)分解良好的應(yīng)用程序中,每個(gè)子操作都可以 獨(dú)立運(yùn)行。 采用這種方式的操作有一點(diǎn)很令人振奮,即程序啟動(dòng)后,整個(gè)應(yīng)用本身就可以被當(dāng)作一 個(gè)Operations 。它會(huì)根據(jù)需要生成盡可能多的子操作,其中每個(gè)子操作都并行地運(yùn)行。當(dāng) 所有子操作都完成時(shí),程序也便退出。 Views (視圖) 登陸頁(yè)面即是一個(gè)視圖,它負(fù)責(zé)顯示一些文本框給用戶。當(dāng)用戶點(diǎn)擊“登陸”按鈕時(shí), 視圖將產(chǎn)生一個(gè)“l(fā)ogi nAttempt”事件,其中包含用戶輸入的用戶名和密碼。 用戶能夠看到的內(nèi)容, 以及能感受到的互動(dòng)都由視圖提供支持。它們會(huì)以一種用戶能理 解的形式呈現(xiàn)應(yīng)用反饋,同時(shí)還能將簡(jiǎn)單的用戶交互轉(zhuǎn)
5、換成有意義的事件。更重要的是視圖 不會(huì)直接改變模型, 它們只是向Operations 發(fā)起事件,然后通過(guò)監(jiān)聽等待由模型發(fā)起的事 件。 Events (事件) 當(dāng)用戶登陸時(shí),視圖會(huì)發(fā)起“ logi nAttempt事件。在登陸操作完成后, “ currentUser”模型會(huì)發(fā)起一個(gè)事件通知應(yīng)用登陸狀態(tài)已改變。 事件監(jiān)聽讓 MOVE (及MVC )實(shí)現(xiàn)控制反轉(zhuǎn),允許模型更新視圖。這是一種強(qiáng)大的抽 象技巧,允許組件互不干擾地耦合在一起。 為什么是現(xiàn)在? 當(dāng)然,Conrad Irwin并不想被人認(rèn)為自己是在暗示 MVC模式很差,這種大型應(yīng)用程 序架構(gòu)在過(guò)去的幾十年里確實(shí)非常成功。不過(guò)幾十年后的今天,新的編程技術(shù)已經(jīng)變得越來(lái) 越流行,所以你也會(huì)在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025學(xué)生食堂承包合同書
- 2025餐飲發(fā)服務(wù)業(yè)保密協(xié)議合同
- 2025石料運(yùn)輸合同
- 2025年度青年人才公寓租賃合同關(guān)于房屋出租3篇
- 2025年度建筑鋼結(jié)構(gòu)質(zhì)量檢測(cè)與安全評(píng)估合同3篇
- 二零二五年度新能源汽車企業(yè)職工招聘與產(chǎn)業(yè)鏈整合合同3篇
- 2025年度餐飲連鎖合伙經(jīng)營(yíng)合同樣本2篇
- 二零二五年度農(nóng)村有機(jī)垃圾堆肥處理與清理服務(wù)合同2篇
- 二零二五年度餐飲兼職煮飯人員培訓(xùn)協(xié)議3篇
- 2025年度模特與造型師拍攝服務(wù)合同3篇
- GB/T 1535-2017大豆油
- 植物細(xì)胞信號(hào)轉(zhuǎn)導(dǎo)課件
- 醫(yī)院感染質(zhì)量控制中心工作總結(jié)和計(jì)劃課件
- 第二章-地方理論-《旅游目的地管理》課件
- 河北省唐山市藥品零售藥店企業(yè)藥房名單目錄
- 水上運(yùn)輸大型構(gòu)件安全交底
- 《保障農(nóng)民工工資支付條例》口袋書課件
- 2020 新ACLS-PCSA課前自我測(cè)試-翻譯版玉二醫(yī)【復(fù)制】附有答案
- 危險(xiǎn)化學(xué)品安全周知卡氧氣
- DB13∕T 5517-2022 大田作物病蟲草害防控關(guān)鍵期植保無(wú)人飛機(jī)作業(yè)技術(shù)規(guī)程
- 《編譯原理》考試試習(xí)題及答案(匯總)
評(píng)論
0/150
提交評(píng)論