一寂祥、MVC模式
模型(Model)—— 用于處理應(yīng)用程序數(shù)據(jù)邏輯衣吠。通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù)
視圖(View)—— 處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的壤靶。
控制器(Controller)—— 處理用戶交互的部分缚俏。通常控制器負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入忧换,并向模型發(fā)送數(shù)據(jù)恬惯。
優(yōu)點(diǎn):
耦合性低 —— 視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼
重用性高 —— 多個(gè)視圖能共享一個(gè)模型
生命周期成本低 —— MVC使開(kāi)發(fā)和維護(hù)用戶接口的技術(shù)含量降低亚茬。
缺點(diǎn):
增加了系統(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)行效率言疗。
視圖與控制器間的連接過(guò)于緊密 —— 視圖與控制器是相互分離,但卻是聯(lián)系緊密的部件颂砸,視圖沒(méi)有控制器的存在噪奄,其應(yīng)用是很有限的,反之亦然人乓,這樣就妨礙了他們的獨(dú)立重用勤篮。
視圖對(duì)模型數(shù)據(jù)的低效率訪問(wèn) —— 依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)色罚。對(duì)未變化數(shù)據(jù)的不必要的頻繁訪問(wèn)碰缔,也將損害操作性能。
參照:http://www.reibang.com/p/f98bd6650014
MVP模式是MVC模式的改良戳护,其實(shí)最明顯的區(qū)別就是金抡,MVC中是允許Model和View進(jìn)行交互的,而MVP中很明顯姑尺,Model與View之間的交互由Presenter完成竟终。
MVVM是Model-View-ViewModel的簡(jiǎn)寫(xiě). 它是有三個(gè)部分組成:Model蝠猬、View切蟋、ViewModel。Model:數(shù)據(jù)模型層榆芦。包含業(yè)務(wù)邏輯和校驗(yàn)邏輯,View:屏幕上顯示的UI界面(layout柄粹、views),ViewModel:View和Model之間的鏈接橋梁,處理視圖邏輯匆绣。
參照:http://www.reibang.com/p/2fbb3fc84449
MVC模式驻右、MVP模式和MVVM模式都作為用來(lái)分離UI層與業(yè)務(wù)層的一種開(kāi)發(fā)模式。這些模式之間的差異可以歸納為對(duì)這個(gè)問(wèn)題處理的方式的不同崎淳。