潘華強(qiáng)
摘要:該文首先介紹了無(wú)線城市的概念,然后提出了移動(dòng)APP開(kāi)發(fā)中常用的MVC架構(gòu)模式,最后結(jié)合IOS客戶端重慶無(wú)線城市項(xiàng)目“重慶城”,論述MVC架構(gòu)模式在該APP開(kāi)發(fā)中的具體應(yīng)用。
關(guān)鍵詞:無(wú)線城市;MVC;架構(gòu)模式
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)28-0084-02
Abstract: This paper first introduces the concept of wireless city, and then puts forward the MVC architecture model which is commonly used in mobile APP development. Finally, the paper introduces the application of MVC architecture model in the development of APP in combination with IOS client.
Key words: wireless city; MVC; architecture model
1 “無(wú)線城市”概述
2004年7月,美國(guó)費(fèi)城提出“無(wú)線費(fèi)城計(jì)劃”,該計(jì)劃是基于WLAN(Wireless Local Area Networks)標(biāo)準(zhǔn)的無(wú)線網(wǎng)絡(luò)。隨后類似的無(wú)線城市計(jì)劃開(kāi)始席卷全球。2013年,中國(guó)移動(dòng)TD-LTE網(wǎng)絡(luò)達(dá)到7M/S,移動(dòng)端網(wǎng)速的快速提升,為無(wú)線城市時(shí)代的到來(lái)提供了最重要的基礎(chǔ)條件。當(dāng)前,中國(guó)的北京、海南、廣東、江西、安徽、湖北、重慶等31個(gè)省份都已經(jīng)建設(shè)了類似項(xiàng)目。
1.1 重慶城功能介紹
“重慶城”為廣大用戶提供便捷的“一站式生活服務(wù)”,便于市民隨時(shí)、隨地暢游所在城市,獲取豐富的當(dāng)?shù)厣钚畔ⅲ艿绞忻袢罕姷暮迷u(píng)。其功能包括:預(yù)約掛號(hào)、交通指南、搶車位、寬帶服務(wù)、教育醫(yī)療、便民服務(wù)、吃喝玩樂(lè)、生活?yuàn)蕵?lè)等。
1) 預(yù)約掛號(hào):提供醫(yī)院的醫(yī)療信息,便于患者及時(shí)、便捷的預(yù)約掛號(hào)。
2) 交通指南:為市民提供實(shí)時(shí)的公共交通信息,便于市民乘車。
3) 搶車位:基于GPS地理定位技術(shù),獲取附近車位信息,便于廣大車主找到空余車位。
4) 寬帶服務(wù):輸入信息,即可免費(fèi)預(yù)約辦理寬帶業(yè)務(wù)。
5) 便民服務(wù):為市民提供當(dāng)?shù)氐母鞣N服務(wù)咨詢,便于查詢各類政務(wù)信息。
6) 吃喝玩樂(lè):匯聚當(dāng)?shù)馗黝惿钚畔?,便捷各類人員在當(dāng)?shù)氐纳睢?/p>
2 MVC架構(gòu)模式
IOS端“重慶城”項(xiàng)目涉及的功能模塊較多,而傳統(tǒng)的基于網(wǎng)絡(luò)的應(yīng)用系統(tǒng)中,數(shù)據(jù)庫(kù)的訪問(wèn)、用戶界面設(shè)計(jì)、業(yè)務(wù)邏輯混合在一起,這種架構(gòu)模式非常不便于后期需求的調(diào)整,一旦需求有變動(dòng),會(huì)給后期維護(hù)帶來(lái)很大的不便?;诜謱拥募軜?gòu)思想應(yīng)運(yùn)而生,MVC架構(gòu)模式是一種典型代表。
MVC不是一種設(shè)計(jì)模式(Design Pattern),而是一種架構(gòu)模式(Architectural Pattern),用以描述應(yīng)用程序的結(jié)構(gòu)以及結(jié)構(gòu)中各部分的職責(zé)和交互方式。MVC是Model View Controller的簡(jiǎn)稱,包括模型(Model)、視圖(View)、控制器(Controller)這3個(gè)層次,它是一種廣泛應(yīng)用于移動(dòng)端系統(tǒng)的架構(gòu)模式。
2.1 MVC三層架構(gòu)
MVC模式能夠?qū)⒛P蛯樱∕odel)和視圖層(View)實(shí)現(xiàn)代碼分離,控制器(Controller)則是保證模型層和視圖層的同步,模型層如果有改變,視圖層也會(huì)保持更新。
模型(Model):模型層用于封裝與業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理方法,一般來(lái)說(shuō)模型對(duì)象可以讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),模型層不關(guān)心它會(huì)如何被顯示。
視圖(View):視圖層主要基于界面展示相關(guān)信息,視圖可以有多個(gè),控制器決定使用哪個(gè)視圖,視圖一般是根據(jù)數(shù)據(jù)模型創(chuàng)建。
控制器(Controller):它是應(yīng)用程序中處理用戶交互的,用戶點(diǎn)擊視圖上的控件,控制器能接收到基于HTTP協(xié)議的GET、POST請(qǐng)求。
2.2 MVC原理
MVC(Model-View-Controller)架構(gòu)模式的原理并不復(fù)雜,應(yīng)用程序必須能區(qū)分相應(yīng)的功能。
MVC架構(gòu)模式對(duì)于小型甚至中型的應(yīng)用程序并不合適,會(huì)帶來(lái)很大的額外工作量,增加應(yīng)用的復(fù)雜性。對(duì)于存在大量界面、邏輯復(fù)雜的大型應(yīng)用程序,MVC架構(gòu)模式雖然會(huì)增加一些工作量,但也能夠增加系統(tǒng)的穩(wěn)定性,長(zhǎng)遠(yuǎn)來(lái)看,會(huì)提升系統(tǒng)的運(yùn)行效率。
3 MVC架構(gòu)模式的代碼實(shí)現(xiàn)
移動(dòng)端”重慶城”項(xiàng)目,因其涉及的界面較多,傳統(tǒng)的架構(gòu)模式不能滿足需求,采用了MVC三層架構(gòu)。項(xiàng)目上線后,Android市場(chǎng)和App Store里該應(yīng)用累計(jì)下載量達(dá)到200余萬(wàn)次,用戶體驗(yàn)良好,后臺(tái)運(yùn)行穩(wěn)定,受到廣大重慶市民的歡迎。
4 總結(jié)
相比傳統(tǒng)架構(gòu)模式,MVC架構(gòu)模式有不少優(yōu)點(diǎn)。其不足體現(xiàn)在以下幾個(gè)方面,后期有待優(yōu)化。
1) 增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對(duì)于簡(jiǎn)單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過(guò)多的更新操作,降低運(yùn)行效率。
2)視圖與控制器間的過(guò)于緊密的連接。視圖與控制器是相互分離,但確實(shí)聯(lián)系緊密的部件,視圖沒(méi)有控制器的存在,其應(yīng)用是很有限的,反之亦然,這樣就妨礙了他們的獨(dú)立重用。
3)視圖對(duì)模型數(shù)據(jù)的低效率訪問(wèn)。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對(duì)未變化數(shù)據(jù)的不必要的頻繁訪問(wèn),也將損害操作性能。
4) 目前,一般高級(jí)的界面工具或構(gòu)造器不支持MVC模式。改造這些工具以適應(yīng)MVC需要和建立分離的部件的代價(jià)是很高的,從而造成使用MVC的困難。
參考文獻(xiàn):
[1] 孔穎,孫秀明,范君君.基于MVC模式的應(yīng)用軟件開(kāi)發(fā)框架研究[J].中小企業(yè)管理與科技旬刊,2016(2):205-205.
[2] 劉姝君, 左樂(lè).MVC模式下的應(yīng)用軟件開(kāi)發(fā)框架初探[J].通訊世界,2017(5):281-282.
[3] 許鑫,費(fèi)翔林.基于MVC模式的應(yīng)用軟件開(kāi)發(fā)框架研究[J].計(jì)算機(jī)工程與應(yīng)用,2005,41(30):102-104.endprint