在這個設計模式里,核心是ViewModel,它是一種特殊類型的model,代表了應用中UI的狀態(tài)。它包含如下內(nèi)容:
- 每個UI控件的一些屬性。例如,text field控件的當前文本,某個button是否是enable狀態(tài)。
- 視圖可以執(zhí)行的動作,例如按鈕點擊或者是手勢。
將ViewModel想象為視圖的模型,會比較容易理解。
MVVM模式中,三個組件的關系比MVC模式的要簡單,有下面的嚴格規(guī)則:
- 視圖引用ViewModel,但反向不成立。
- ViewModel引用Model,但反向不成立。
如果違背了上面兩條規(guī)則,那么就是錯誤的MVVM實施行為。
這種模式的好處:
- 輕量級的視圖(控制器), 所有的UI邏輯都位于ViewModel中。
- 易測試性。可以在沒有視圖的情況下,運行整個應用。
更多:iOS面試題合集