在 Swift 中使用 MVVM (模型-视图-视图模型) 设计模式
- 模型(Model):这是代表你的数据的类或结构。通常这会是一些简单的数据结构
struct Person { let name: String let age: Int }
- 视图模型(ViewModel):这是一个将你的模型和视图连接起来的类。它处理所有的视图逻辑
class PersonViewModel { private let person: Person var name: String { return person.name } var ageText: String { return "Age is \(person.age)" } // Initialization with a person model init(person: Person) { self.person = person } }
- 视图(View):这是用户看到和与之交互的界面。在 SwiftUI 中,这通常是一个 View 结构
struct PersonView: View { @ObservedObject var viewModel: PersonViewModel var body: some View { VStack { Text(viewModel.name) Text(viewModel.ageText) } } }
- 然后,你可以创建一个模型和对应的视图模型,然后在视图中使用它
-
let model = Person(name: "John Doe", age: 30) let viewModel = PersonViewModel(person: model) let view = PersonView(viewModel: viewModel)