MVC是一種架構(gòu)模式沙兰,M表示Model,V表示視圖翘魄,C表示控制器Controller鼎天。
- Model負(fù)責(zé)存儲、定義和操作數(shù)據(jù)
- View用來展示給用戶暑竟,和用戶進(jìn)行操作交互斋射。
- Controller 是Model和View的協(xié)調(diào)者。Controller把Model中的數(shù)據(jù)拿過來給View用但荤。Controller可以直接與Model和View進(jìn)行通信罗岖,而view不能和Controller直接通信。View與Controller通信需要通過代理協(xié)議或者閉包等方式腹躁。當(dāng)有數(shù)據(jù)更新時(shí)桑包,Model也要與Controller進(jìn)行通信,這時(shí)候需要用到Notification和KVO纺非,這個(gè)方式就像廣播一樣哑了,Model發(fā)信號,Controller設(shè)置監(jiān)聽接收信號烧颖。View和Model不能直接進(jìn)行通信弱左,這樣會違背MVC設(shè)計(jì)模式。
如何理解MVVM設(shè)計(jì)模式
- ViewModel層倒信,就是View和Model層的粘合劑科贬,他是一個(gè)放置用戶輸入輸出驗(yàn)證邏輯,視圖顯示邏輯鳖悠,發(fā)起網(wǎng)絡(luò)請求和其他各種各樣的代碼的極好的地方。說白了优妙,就是把原來ViewController層的業(yè)務(wù)邏輯和頁面邏輯等剝離出來放到ViewModel層乘综,給Controller層瘦身。
- View層套硼,他的任務(wù)就是從ViewModel層獲取數(shù)據(jù)卡辰,然后顯示。