IOS的MVC和MVVM模式簡明介紹

2022-03-29 18:18:46 字數 1808 閱讀 3242

ios中的mvc(model-view-controller)將軟體系統分為model、view、controller三部分,結構圖如下:

model: 你的應用本質上是什麼(但不是它的展示方式)

controller:你的model怎樣展示給使用者(ui邏輯)

view:使用者看到的,被controller操縱著的

controller可以直接訪問model,也可以直接控制view。

但model和view不能互相通訊。

view可以通過action-target的方式訪問controller,比如我們在storyboard中拖uibutton到**中所建立的@ibaction,當按鈕被點選時,view就會傳遞該資訊給controller。

有時候controller需要實時監控view的狀態,這時controller會通過protocol將其自身設為view的delegate,這樣當view will change、should change、did change 的時候controller也會接到相應通知。

view不儲存資料,但view可以通過協議獲取controller而不是model中的資料用來展示。

controller整理model中的資料用於給view展示。

model不能直接與controller通訊,因為model是獨立於ui存在的。

但當model發生改變想通知controller時可使用廣播機制,在ios中有nsnotification和kvo(key-value observing)可供使用。

上圖展示了mvvm與mvc的差別。

在mvc模式的ios開發中,controller承擔了太多的**,包含著我們的檢視處理邏輯和業務邏輯。

在mvvm中,我們將檢視處理邏輯從c中剝離出來給v,剩下的業務邏輯部分被稱做view-model。

使用mvvm模式的ios應用的可測試性要好於mvc,因為viewmodel中並不包含對view的更新,相比於mvc,減輕了controller的負擔,使功能劃分更加合理。

MVC 和 MVVM 設計模式

mvc模式 mvc即model view controller。他是1970年代被引入到軟體設計大眾的。mvc模式致力於關注點的切分,這意味著model和controller的邏輯是不與使用者介面 view 掛鉤的。因此,維護和測試程式變得更加簡單容易。mvc設計模式將應用程式分離為3個主要的方面 ...

一 mvc模式和mvvm模式

m model 資料儲存 v view 使用者介面 c controller 業務邏輯 mvc 使用者操作 view 負責接受使用者的輸入操作 controller 業務邏輯處理 model 資料持久化 view 將結果通過view反饋給使用者 mvc是最經典的開發模式之一,最早是後台那邊來的,後台...

MVC模式 MVVM模式

mvc是一種架構模式,m表示model,v表示檢視view,c表示控制器controller model負責儲存 定義 運算元據 view用於展示介面,與使用者進行操作互動 controller是model和view之間的橋梁,將model中的資料傳遞到view。關係解讀 controller可以直...