IOS環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索_第1頁
IOS環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索_第2頁
IOS環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索_第3頁
IOS環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索_第4頁
IOS環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、IOS環(huán)境下使用MVC模式進(jìn)行APP開發(fā)的設(shè)計(jì)思路探索摘要:隨著軟件開發(fā)技術(shù)、特別是OOP技術(shù)的發(fā)展,人們發(fā)現(xiàn)OOP技術(shù)開發(fā)的軟件在移植到不同平臺(tái)或是軟件 運(yùn)行硬件發(fā)生變化時(shí),代碼較難維護(hù);MVC模式作為蘋果公司主推的交互式 APP設(shè)計(jì)模式,已經(jīng)得到推廣和應(yīng)用。本文 通過使用MVC開發(fā)模式在IOS系統(tǒng)中進(jìn)行APP設(shè)計(jì),向讀者 介紹如何利用 MVC 模式進(jìn)行應(yīng)用開發(fā)。通過分析如何使用 MVC 模式設(shè)計(jì)軟件,啟發(fā)開發(fā)者設(shè)計(jì)軟件的思路, 也希望能 對(duì)應(yīng)用開發(fā)者們有所幫組。關(guān)鍵詞: MVC APP 設(shè)計(jì)模式 開發(fā)中圖分類號(hào): TP311.52 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1007-9416(2015

2、)06-0000-00軟件開發(fā)在商業(yè)上被認(rèn)為是一項(xiàng)昂貴又有風(fēng)險(xiǎn)的投資。 應(yīng)用開發(fā)時(shí)常常出現(xiàn)周期比預(yù)想長(zhǎng)、預(yù)算超支、功能不符合 約定等種種問題。為了解決軟件開發(fā)問題,人們發(fā)明了多種 軟件開發(fā)模式,比較典型的有面向過程的開發(fā)模式,面向?qū)?象的模式和模型 -視圖 -控制器模式。面向?qū)ο蠹夹g(shù)曾解決過 軟件開發(fā)過程的大部分問題,但由于開發(fā)者經(jīng)常把對(duì)象混在 一起,導(dǎo)致當(dāng)應(yīng)用程序成熟起來后,移植到不同平臺(tái)或是硬 件發(fā)生變化時(shí),代碼會(huì)變的難以維護(hù)。對(duì)象設(shè)計(jì)的情況經(jīng)常是,如果一下一點(diǎn)發(fā)生變化,就很難把受到影響的對(duì)象隔離開來。模型-視圖-控制器(Model-View-Controller , MVC)其 實(shí)并不是

3、新鮮事物,早在 1982 年的時(shí)候就被發(fā)明出來用于 軟件設(shè)計(jì)。在IOS開發(fā)中MVC模式被使用的淋漓盡致,充分理解iOS的MVC模式,有助于我們程序的組織合理性。1 MVC 模式概述1.1什么是MVC模式MVC 模式即模型 -視圖 -控制器( Model-View-Controller , MVC),顯而易見,是由模型、視圖和控制器三個(gè)部分組成。 模型即概念,指你的程序是什么,是業(yè)務(wù)對(duì)象,是與用戶界 面無關(guān)的部分;控制器即通道,是專門負(fù)責(zé)模型和視圖通信 的對(duì)象,是你的應(yīng)用程序如何將模型顯示給用戶(UI),它是模型和視圖的鏈接橋梁;而視圖即用戶窗口,是用戶界面, 可以形象將之理解為控制器的小兵,視

4、圖一切聽從控制器指 揮,并別把自己發(fā)生的重要事件及時(shí)報(bào)告給控制器。若使用 計(jì)算機(jī)語言描述,即模型是內(nèi)部數(shù)據(jù),控制器則是輸入輸出 控制,而視圖是數(shù)據(jù)表示。1.2 模型 模型是應(yīng)用問題的抽象,一個(gè)應(yīng)用程序需要解決哪些問 題,這些問題本身又具有什么特殊操作,應(yīng)該使用模型將其 邏輯表示抽象出來。具體而言,即需要使用對(duì)象對(duì)問題數(shù)據(jù) 進(jìn)行封裝,抽象并封裝相應(yīng)的數(shù)據(jù)和操作,以備視圖的查詢和更新需要。1.3 視圖 視圖即用戶界面,是模型的外在表現(xiàn),模型與視圖之間 應(yīng)該是一對(duì)多的關(guān)系。它是人機(jī)交互的窗口,是APP的接口, 使用 push 和 pull 方法,通過控制器與模型進(jìn)行交互,執(zhí)行 查詢或是更新指令。1.

5、4 控制器 控制器的主要作用是實(shí)現(xiàn)模型和視圖之間交互的橋梁。 理解用戶與視圖的交互信息,并將之標(biāo)準(zhǔn)化為業(yè)務(wù)事件,提 供給模型,促使模型對(duì)程序動(dòng)作進(jìn)行輸出,最總選擇使用哪 個(gè)視圖來向用戶展示數(shù)據(jù)。1.5 MVC三部分之間的關(guān)系MVC 模式實(shí)際上是對(duì)應(yīng)用程序進(jìn)行了邏輯分離, 將輸入、 處理和輸出具體業(yè)務(wù)邏輯分解成了視圖通過控制器到模型, 模型處理后再通過控制器回到相應(yīng)視圖(可能已經(jīng)不是原來 的視圖了),三者相互聯(lián)系,但具體處理上又各自分開,它 們各自只負(fù)責(zé)自己的一塊具體事務(wù)。2 iOS 中 MVC 模式設(shè)計(jì) APP2.1 IOS簡(jiǎn)介iOS最早名為iPhone OS,是美國(guó)蘋果公司基于 Unix,專

6、 門為其手機(jī)開發(fā)的一款操作系統(tǒng),之后其應(yīng)用也擴(kuò)展到蘋果 公司的其他產(chǎn)品上如iPod、iPad等,后改名為iOS。雖然當(dāng)今主流的手機(jī)操作系統(tǒng)有 iOS、 Android 以及以 Android 為底 層框架的其他再開發(fā)的系統(tǒng),但其中iOS 系統(tǒng)應(yīng)其穩(wěn)定、簡(jiǎn)單易用以及蘋果品牌效應(yīng)受到廣泛追捧。現(xiàn)在iOS 的生態(tài)圈非常成熟, 只要開發(fā)者有良好的創(chuàng)意, 并將該創(chuàng)意實(shí)現(xiàn)為 iOS 應(yīng)用程序,就可以把這個(gè)應(yīng)用程序發(fā)布到蘋果提供的AppStore中獲利。目前,iOS是市面上最問題的手機(jī)操作系 統(tǒng),越來越多的程序員希望能進(jìn)行 iOS APP的開發(fā)。iOS中最 常見的一種設(shè)計(jì)模式就是 MVC。2.2 使用 MV

7、C 模式設(shè)計(jì)如果單純使用 OOP模式,開發(fā)者經(jīng)常會(huì)把對(duì)象混在一起,當(dāng)項(xiàng)目中涉及業(yè)務(wù)規(guī)則、用戶界面和基于客戶端服務(wù)器還是 基于英特網(wǎng)三個(gè)問題,當(dāng)其中任一點(diǎn)發(fā)生變化時(shí),開發(fā)者將 很難把受到影響的對(duì)象隔離開。 而使用 MVC 模式,對(duì)象可以 根據(jù)其任務(wù)分成三個(gè)類別。開發(fā)者的責(zé)任就是保證每一個(gè)類 別的對(duì)象不會(huì)移動(dòng)到其他類別中。這三種類別分別是:(1)模型,業(yè)務(wù)對(duì)象; (2)視圖,用戶界面對(duì)象; (3) 控制器,負(fù)責(zé)模型和視圖通信的對(duì)象。如果對(duì)象按照這種分類組織,應(yīng)用的開發(fā)和維護(hù)就更簡(jiǎn) 單。本文將以一個(gè) iPhone 銀行程序中的對(duì)象及其所屬 MVC 分類來講解:模型:賬戶結(jié)余、用戶加密、轉(zhuǎn)賬、賬戶登錄

8、;視圖: 賬戶結(jié)余單元格、 賬戶登錄過程中的旋轉(zhuǎn)指示控件; 控制器: 賬戶結(jié)余控制器、賬戶視圖控制器、登錄視圖控制器。在 MVC 范式(如下圖 1)中,記住對(duì)象分類最簡(jiǎn)單的方法就是: 模型:獨(dú)特的業(yè)務(wù)或應(yīng)用規(guī)則,或是代表真實(shí)世界的代碼; 視圖:獨(dú)特的用戶界面;控制器:任何控制或與模型或者視 圖對(duì)象通訊的代碼??梢钥闯?,在iOS中使用MVC模式來開發(fā)APP,將使應(yīng) 用開發(fā)應(yīng)用的邏輯結(jié)構(gòu)變得非常簡(jiǎn)單直觀。3 MVC在IOS中應(yīng)用的步驟目前,基于IOS平臺(tái)的APP有一百多萬個(gè),這些 APP的 開發(fā)大都采用 MVC 模式進(jìn)行,一般情況下基于 MVC 模式開 發(fā)應(yīng)用需要分如下幾步來進(jìn)行:(1)分析問題,

9、對(duì) APP進(jìn)行分解;弄清楚 APP的核心 功能有哪些,包含哪些數(shù)據(jù),這些數(shù)據(jù)中哪些是需要用戶輸 入的、哪些是需要輸出的,如何獲取或顯示這些數(shù)據(jù);根據(jù) 上文分析,我們需要在這個(gè)階段弄清APP的業(yè)務(wù)對(duì)象,應(yīng)為每個(gè)業(yè)務(wù)對(duì)象將對(duì)應(yīng)一個(gè)模型,因此這些模型要么是業(yè)務(wù)數(shù) 據(jù),要么是業(yè)務(wù)操作,需要針對(duì)該應(yīng)用設(shè)計(jì)出模型部分,并 使用對(duì)象對(duì)模型進(jìn)行封裝。( 2)設(shè)計(jì)視圖并實(shí)現(xiàn);根據(jù)APP的功能設(shè)計(jì),不論是核心功能或是輔助功能,將有 若干個(gè)用戶界面,這些界面將對(duì)應(yīng)若干個(gè)視圖對(duì)象,它們將 從模型中獲取數(shù)據(jù),或是將作為數(shù)據(jù)界面往模型中傳入數(shù)據(jù)。它是APP的用戶界面,也是APP的表現(xiàn)形式。根據(jù)蘋果公司的HIG (人機(jī)交互

10、界面準(zhǔn)則)和用戶界面在APP銷售階段的重要作用,需要開發(fā)者花大量的時(shí)間和精力在視圖設(shè)計(jì)上。( 3)設(shè)計(jì)并實(shí)現(xiàn)多個(gè)控制器;控制器是連接模型和視 圖的橋梁。每一個(gè)視圖都應(yīng)有對(duì)應(yīng)的用戶操作,而每個(gè)用戶 操作也會(huì)有相應(yīng)的響應(yīng)時(shí)間和行為要求,根據(jù)APP功能需要,控制器將使用特定的方法去影響特定事件,以達(dá)到調(diào)節(jié)視圖 的或影響模型的作用,因此要為視圖需求去實(shí)現(xiàn)控制器。在 APP設(shè)計(jì)中,還應(yīng)注意控制器的獨(dú)立性,確保控制器能更加 靈活,以及便于實(shí)現(xiàn)不同的操作模式。4 結(jié)語MVC 模式由于其結(jié)構(gòu)清晰等特性, 不僅在大型軟件開發(fā) 中的應(yīng)用日漸廣泛,更因?yàn)閕Phone、iPad的市場(chǎng)占有率提高, 人們對(duì)蘋果移動(dòng)設(shè)備的

11、喜愛,以及蘋果APP開發(fā)的需求增大, 而大受開發(fā)者重視,本文介紹了 iOS平臺(tái)下使用MVC模式開 發(fā)APP的一般步驟,分析了 MVC的優(yōu)缺點(diǎn),這也是MVC設(shè) 計(jì)模式體現(xiàn)APP開發(fā)思想和程序設(shè)計(jì)思路。但作為開發(fā)人 員創(chuàng)造性的勞動(dòng)者, 還應(yīng)充分利用自身特長(zhǎng)。 不斷改進(jìn), 努力增加軟件的可維護(hù)性、可重用性、可伸縮性、可靠性和 安全性,為市場(chǎng)需求設(shè)計(jì)出更多更好的軟件。參考文獻(xiàn)1黎永良,崔杜武.MVC設(shè)計(jì)模式的改進(jìn)與應(yīng)用J計(jì) 算機(jī)工程, 2005( 9): 96-97.2 孫凌燕,陸保嵐,孫健 .基于 Struts 的 Web 應(yīng)用框 架設(shè)計(jì)與研究J計(jì)算機(jī)工程,2005 ( 8): 57-60.3 Gary Bennett , Mitch Fishe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論