MVVVR 架構
·
2min
前言
基於 Clean Swift, MVVM, 打造適合自己的 iOS 架構. MVVVR.
移除了 Clean Swift 的 Presenter / Interactor, 用 ViewModel 與 Binding State 替代.
基本架構
一個 MVVVR 模組代表一個 UIViewController 的 Life Cycle.
包含基本五個模組:
-
Model
這個 ViewController 要執行的 Action / 要 Binding 的 State / 要呈現的 Model / 基礎 Raw Data. -
ViewOutlet
這個 ViewController 要呈現的 UI. -
ViewController
UIViewController 主體. -
ViewModel
這個 ViewController 的商業邏輯, 例如 call api. -
Router
這個 ViewController 的跳轉邏輯.
ViewController 持有 ViewOutlet.
ViewController 持有 ViewModel.
ViewController 持有 Router.
Router 持有(Weak) ViewController.
ViewModel 持有 Model 裡的資料.
關係圖
- ViewController Binding ViewModel 的 State.
- ViewController 發起 Action.
- ViewModel 依照 Action 變更 State.
- ViewModel State 變更, 觸發 ViewController 更新 UI.
sequenceDiagram participant ViewOutlet participant ViewController participant ViewModel ViewModel-->>ViewController: Binding State ViewController->>ViewModel: Do Action ViewModel->>ViewModel: Call API or Update Models ViewModel-->>ViewController: State Changed ViewController-->>ViewOutlet: Reload UI or Router to...