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