一、App是什么
App是英文Application的簡稱,是指設(shè)計(jì)給智能手機(jī)、平板電腦和其它移動(dòng)設(shè)備上運(yùn)行的軟件應(yīng)用程序,可分為基于移動(dòng)設(shè)備本地(操作系統(tǒng))運(yùn)行的Native App 和基于高端機(jī)瀏覽器運(yùn)行的Web App。移動(dòng)設(shè)備用戶可以通過無線網(wǎng)絡(luò)連接移動(dòng)軟件應(yīng)用程序商店免費(fèi)或付費(fèi)下載使用App。廣義移動(dòng)應(yīng)用包含個(gè)人及企業(yè)級(jí)應(yīng)用,狹義移動(dòng)應(yīng)用指企業(yè)級(jí)商務(wù)應(yīng)用,可分為消息應(yīng)用、現(xiàn)場應(yīng)用、管理應(yīng)用及自主應(yīng)用等。
根據(jù)手機(jī)app安裝來源不同,又可分為手機(jī)預(yù)裝軟件和用戶自己安裝的第三方應(yīng)用軟件。手機(jī)預(yù)裝軟件一般指手機(jī)出廠自帶、或第三方刷機(jī)渠道預(yù)裝到消費(fèi)者手機(jī)當(dāng)中、且消費(fèi)者無法自行刪除的應(yīng)用或軟件。除了手機(jī)預(yù)裝軟件之外,還有用戶從手機(jī)應(yīng)用市場自己下載安裝的第三方手機(jī)app,下載類型主要集中在社交社區(qū)類軟件。
二、Model是什么
Model 是數(shù)據(jù)源層,比如數(shù)據(jù)庫接口或者遠(yuǎn)程服務(wù)器的api。Model層包含了app的數(shù)據(jù)與邏輯,Model層中的類需要關(guān)心的是數(shù)據(jù)的表現(xiàn),存儲(chǔ),以及操作。Model層是整個(gè)app生態(tài)中相對(duì)獨(dú)立的一個(gè)部分,因?yàn)樗粫?huì)直接與controller層或者是View層進(jìn)行通訊,而是在其他層需要請(qǐng)求它的信息的時(shí)候進(jìn)行間接通訊。
Model的作用:
屬性存?。簩⑽募械囊恍┨匦院蛿?shù)據(jù)以屬性的形式存儲(chǔ)可變性:屬性可以readwrite,所以能夠被改變,并保存到本地KVO:可以觀察一個(gè)屬性的值并在它改變的時(shí)候受到通知,并以此對(duì)UI或其他地方進(jìn)行控制處理數(shù)據(jù):根據(jù)業(yè)務(wù)邏輯處理網(wǎng)絡(luò)獲取數(shù)據(jù)與本地存儲(chǔ)數(shù)據(jù)三、MVC框架
MVC是一種架構(gòu)設(shè)計(jì)模式,是一種設(shè)計(jì)理念。是為了達(dá)到分層設(shè)計(jì)的目的,從而使代碼解耦,便于維護(hù)和代碼的復(fù)用。MVC是3個(gè)單詞的縮寫,全稱:Model-View-Controller(模型-視圖-控制器)。
MVC開始是存在于桌面程序中的,M是指業(yè)務(wù)模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。
MVC 編程模式:
M即model模型是指模型表示業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有非常多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。V即View視圖是指用戶看到并與之交互的界面。比如由html元素組成的網(wǎng)頁界面,或者軟件的客戶端界面。MVC的好處之一在于它能為應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,它只是作為一種輸出數(shù)據(jù)并允許用戶操作的方式。C即controller控制器是指控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。延伸閱讀1:框架和設(shè)計(jì)模式的區(qū)別
框架與設(shè)計(jì)模式雖然相似,但卻有著根本的不同。設(shè)計(jì)模式是對(duì)在某種環(huán)境中反復(fù)出現(xiàn)的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執(zhí)行或復(fù)用,而對(duì)模式而言只有實(shí)例才能用代碼表示;設(shè)計(jì)模式是比框架更小的元素,一個(gè)框架中往往含有一個(gè)或多個(gè)設(shè)計(jì)模式,框架總是針對(duì)某一特定應(yīng)用領(lǐng)域,但同一模式卻可適用于各種應(yīng)用。可以說,框架是軟件,而設(shè)計(jì)模式是軟件的知識(shí)。