說(shuō)到MVVM汹忠,就要先說(shuō)MVC淋硝,M數(shù)據(jù)管理者,為VC提供數(shù)據(jù)宽菜,為VC存儲(chǔ)數(shù)據(jù)提供接口谣膳;C管理ViewController的生命周期,負(fù)責(zé)生成所有的View實(shí)例铅乡,并放入ViewControlle继谚,監(jiān)聽來(lái)自View與業(yè)務(wù)有關(guān)的事件,通過(guò)與Model合作隆判,完成對(duì)應(yīng)事件的業(yè)務(wù)犬庇;V響應(yīng)與業(yè)務(wù)無(wú)關(guān)的事件
MVVM是對(duì)胖模型的拆分,ViewModel相比較于MVC侨嘀,新引入的視圖模型臭挽,是網(wǎng)絡(luò)請(qǐng)求、業(yè)務(wù)邏輯咬腕、視圖顯示邏輯等代碼存放的地方欢峰,任何視圖本身的引用都不應(yīng)放在VM中,也就是說(shuō)VM中不要引入U(xiǎn)IKit.h
這就解決了VC臃腫的問(wèn)題,將邏輯代碼纽帖、網(wǎng)絡(luò)請(qǐng)求都寫在VM中宠漩,又由于VM中包含了所有的展示邏輯而且不會(huì)引用V