iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

IOS從零成長30天日記系列 第 27

IOS-App 基本MVVM(1)

  • 分享至 

  • xImage
  •  

Day27

由MVC衍生改變而來的MVVM到底是什麼呢?

MVVM的基礎模型結構上比MVC的多了一個視圖模型(ViewModel),這個ViewModel既是struct又是class。
因此,可以把ViewModel定位在MVC的模型(Model)與視圖融合控制器(View+Controller)中,從而衍生以下方式:

定義每個組成字母 M、V、VM 來理解這種模式。

M(Model)=[模型]:以最簡單的格式儲存特定的數據資訊結構。因保持原始的狀態,保證了它的便攜性與可重用性。

V(View)=[視圖]:是在IOSAPP中用來構建用戶介面(UI)使用的所有物件。泛指UIView類別、和其他提供用戶交互的 UI元件。

VM(ViewModel)=[視圖模型]:是位於模型與視圖控制器之間,ViewModel將模型中的數據轉換為可讀格式,由視圖控制器(ViewController)在視圖(View)中呈現。

爭論點:
設計模式中用於下載檔案的Networking Code位置。


總括而言:

視圖控制器(ViewController)將模型(Model)數據顯示給使用者,使使用者更新模型數據,視圖/視圖控制器只能通過 ViewModel 與模型間接溝通。另外在UI中,應用程式的數據從ViewModel提供給視圖控制器,透過視圖顯示,對視圖中的數據進行更改都須先傳遞給視圖控制器,視圖控制器只與ViewModel進行溝通。ViewModel是視圖控制器與模型的中介,單一的管道、守門者,數據通過它從模型流向視圖控制器。


上一篇
IOS-App 基本MVC(2)
下一篇
IOS-App KVO(2)
系列文
IOS從零成長30天日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言