MVC(Model-View-Controller)
在MVC的理論上,controller負責view和model之間的溝通。controller接收使用者和view的互動訊息,透過KVO或delegation和model溝通,再將得到的訊息呈現在view上給使用者。
然而在實際情況中,現在iOS的開發高度仰賴storyboard,view和controller的界線越來越模糊、難以區分,往往也讓controller變得很肥大,因此有人戲稱MVC代表的是Massive View Controller。
MVVM (Model-View-ViewModel)
MVVM的架構改善了這樣的問題。
MVVM的架構其實和MVC很相似,它的model和MVC是一樣的。而原本MVC中的view則和controller合併。View Model是MVVM架構中的新概念,負責處理、轉換從model得到的資料,變成可以讓view使用的形式,讓view來使用。
View:呈現資料、與使用者互動
ViewModel:處理資料的邏輯
Model:資料儲存、資料型別、撈資料
當然MVVM架構的實施可能因人而異。影片中也有提到,同樣的程式碼,有些人覺得該寫在既有的view…