1.什么是MVC
先來看看下面這張圖:(來源)
Models:?數(shù)據(jù)層,負(fù)責(zé)數(shù)據(jù)的處理和獲取的數(shù)據(jù)接口層,UI數(shù)據(jù)來源。
Views: 展示層,即UI層蜒车。
Controller: 控制器層,它是 Model 和 View 之間的媒人幔嗦,負(fù)責(zé)牽線搭橋的??酿愧。當(dāng)用戶對(duì) View 有操作時(shí)它負(fù)責(zé)去修改相應(yīng) Model;當(dāng) Model 的值發(fā)生變化時(shí)它負(fù)責(zé)去更新對(duì)應(yīng) View邀泉。
2嬉挡、MVC中每層的具體作用:
C層(交互層):
??? 導(dǎo)航及其他特殊(屏幕旋轉(zhuǎn)等)配置
? ? 生成主view,一個(gè)vc只存在一個(gè)主view
? ? 響應(yīng)主View的事件交互(含處理view和model之間交互的接口調(diào)用)
???? 生成頁面的model
model層(數(shù)據(jù)層):
? ? 為UI展示提供數(shù)據(jù)(包括數(shù)據(jù)處理及獲取)
? ? UI數(shù)據(jù)交互邏輯處理等數(shù)據(jù)相關(guān)
view層(展示層):
? ? 界面元素搭建,動(dòng)畫效果汇恤,數(shù)據(jù)展示棘伴,
? 如圖:
總結(jié)
針對(duì)具體頁面來說mvc可以由一個(gè)或者多個(gè)組成,頁面vc可以當(dāng)作是c也可以當(dāng)作是view 甚至可以當(dāng)作是v和c.不管什么業(yè)務(wù)都是數(shù)據(jù)(M) UI(V) 和 UI交互(控制器)為基礎(chǔ)的,至于演變的mvp mvvm 只是把復(fù)雜的塊按不同理解拆分出來的結(jié)果.