在这个设计模式里,核心是ViewModel,它是一种特殊类型的model,代表了应用中UI的状态。它包含如下内容:
- 每个UI控件的一些属性。例如,text field控件的当前文本,某个button是否是enable状态。
- 视图可以执行的动作,例如按钮点击或者是手势。
将ViewModel想象为视图的模型,会比较容易理解。
MVVM模式中,三个组件的关系比MVC模式的要简单,有下面的严格规则:
- 视图引用ViewModel,但反向不成立。
- ViewModel引用Model,但反向不成立。
如果违背了上面两条规则,那么就是错误的MVVM实施行为。
这种模式的好处:
- 轻量级的视图(控制器), 所有的UI逻辑都位于ViewModel中。
- 易测试性。可以在没有视图的情况下,运行整个应用。
更多:iOS面试题合集