正確的理解iOS MVC

MVC

剛接觸iOS開發時,就知道Apple公司爲我們提供了MVC模式,並且SDK設計也告訴我們應該搭配MVC使用。所以每一個人都應該掌握這種模式,那麼,什麼是MVC了?
mvc

被誤解的MVC

根據MVC關係圖,我們就理所當然的認爲,MVC設計模式就是對應的Modle、View、Controller三個類,最終的結構就是,大量的業務邏輯寫在了Controller中,Controller變得越來越臃腫,難以維護。

那MVC就真的是那樣嗎?

正確理解MVC

MVC核心是Presentation與Domain的強分離,也是GUI程序開發的原則。

MVC是一套模式,而不僅僅是三個類,你更應該按照Presentation和Domain關係來創建類。其中包括View/ViewCotroller、 Presentation Model 和 DomainModel 等。

Presentation與Domain關係

在這裏插入圖片描述

MVVM

MVVM是將傳統的MVC中Controller業務邏輯代碼單獨提出來.

表示和業務部分使用響應性綁定相互通信,它們分別稱爲 View 和 ViewModel。在 iOS 中,通常會使用 ReactiveCocoa,RxSwift 或現代的 Combine 框架進行響應性綁定,它們通常位於 ViewModel 類中,並且也由 ViewController 通過協議使用。在與 Services 或 Domain Model 進行通信的一部分中,MVP 並沒有太大的區別,但人們可能更喜歡在這裏使用綁定或響應性事件

配合RxSwift使用時,VM中應該具備能直接綁定View的功能。

在這裏插入圖片描述

參考文檔

唯一可行的iOS架構:探討對於MVC的誤解,和應該怎麼理解。

iOS App的最佳架構存在嗎?:針對唯一可行的iOS架構作出評論,解釋沒有其他設計模式存在的合理性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章