iOS中的MVVM設計模式

2021-07-27 05:03:52 字數 1221 閱讀 8642

經過這幾天的翻閱資料與**的實現,終於對mvvm設計模式有了明確的了解,分享給大家

一、什麼是mvvm設計模式?

mvvm**於微軟。是一種**的分層方式,更是一種思想。mvvm 基本上就是 mvc 的改進版。

二、如何正確的使用mvvm設計模式?

結構:在建立目錄的時候一樣,每一層放在乙個單獨的資料夾,m->model,v->view,vm->view model。

在使用的時候每個view/controller持有乙個viewmodel,viewmodel負責處理model。順序就是這個樣子。

做法:在viewmodel裡首先例項成乙個單例,這樣做可以每次建立後使用返回的都是同乙個物件。在vm中適合做一些複雜的網路請求,邏輯處理,驗證等。例如給view 提供乙個經過處理後的token,這樣還可以把重要資料儲存到本地。在網路資料處理階段,viewmodel負責處理網路請求,把請求到的資料通過block(swift稱閉包)返回給view層。同時,vm中的block也要做一些判斷,返回給view也有error的情況。

功能擴充套件:mvvm方便於資料繫結,如果model的資料發生變化有變化view也可以隨之更新。具體實現方式是使用kvo或通知。

三、使用mvvm設計模式的好處?

在mvc中,c(controller控制器)所作的事情過多,負責網路處理,協調v和m,導致控制器所作的事情特別的多,**上也顯得格外的臃腫。mvvm上可以解決這一壓力問題。

在過去我們一直使用的mvc設計模式,功能上都實用又好用為什麼又使用了mvvm了呢?我們可以這樣講,在什麼樣的開發條件下使用什麼樣的設計模式,如果只寫乙個hello world,如果硬要寫個mvc就顯得大材小用了。首先我們應該明確mvvm的設計模式好處在於什麼,適合在哪種環境下使用。

使用mvvm的實際模便於結耦,提高**質量。更加高效的提公升**重用性。若產品布局頁面發生改變直接修改view層。若請求認證方式或邏輯方式發生改變直接修改viewmodel層就可以。

mvvm適合用於網路處理一些業務邏輯特別強的情況下使用

mvc的優勢是在於一些介面比較多複雜的情況下使用會更好

四、與mvc對比

mvc是控制器負責網路處理,協調view和model。在controller中,首先先負責載入控制項,然後進行網路請求。控制器把請求到的資料傳遞給view,誤區:view不能直接和model互動,是通過controller進行傳遞進行的。否則mvc的意義就不存在了。controller和view就不存在什麼區別了。mvvm是mvc的公升級版,mvvm相容mvc

iOS設計模式 MVVM

原文 如果你已經開發ios應用程式有一段時間了,那麼你可能聽說過mvvm或者mvc 設計模式 這是你構建ios應用程式的標準模式。然而,最近,我越來越厭倦mvc的一些缺點了。在這篇文章中,我要梳理一下什麼是mvc,及其缺點,並告訴你乙個新的方式來組織你的應用程式 那就是 mvvm。model vie...

剖析iOS設計模式MVVM

眾所周知,物件導向,是由面向過程演變而來,於是有了設計模式。客服端程式設計離不開mvc model view controller 設計模式,由於複雜頁面 如微博列表,存在使用者表頭,內容cell存在多型及變高,多種操作交雜的情況 把頁面展示,及操作都放在viewcontroller裡進行管理,勢必...

MVVM設計模式

mvvm是model view viewmodel的簡寫。微軟軟體 ui層更加細節化 可定製化。同時,在技術層面,wpf也帶來了 諸如binding dependency property routed events command datatemplate controltemplate等新特性。...