tags:
- Swift
Lecture III & IV - MVVM
上节课,我们简单地学习了 SwiftUI 并构建了一个 Memorize app
这节课,我们将要学习如何构建 App 的逻辑,并将我们之前构建的 Memorize 应用中的逻辑、数据同 UI 分离开。我们要学习的设计范式叫 MVVM,全称 Model-View-ViewModel,是 SwiftUI 推荐的架构模式,旨在提高代码的可读性、可测试性和可维护性。它由三部分核心组件构成,即:
因为 SwiftUI 是声明式 (declared) 的,所以你只需要描述 UI 应该长什么样,而 SwiftUI 会在每次 model 变化后自动更新 view(比如说 Text("Hello")
中的内容改变后,UI 也随之改变,你完全不需要自己 rebuild)。我们关心的,只有如何将这些东西分离开。
我们现在知道 model 是什么,知道 view UI 是什么,但是将两者联系在一起的中间层是?
Swift 是强类型语言,类型安全可以大大减少 Bug
本节课重点强调了使用类型约束让代码更可靠且易于重构
View 本质上是一个泛型的 Struct,每次 UI 更新其实就是重建这个 View 的 Struct