[Swift]從MVC到MVVM、Data Binding

Penny Ng
Aug 1, 2020

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…

--

--

Penny Ng
Penny Ng

Written by Penny Ng

A passionate self-taught  iOS developer. Write to record my learning and share the knowledge