**ViewController.swift**
```swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var ageLabel: UILabel!
var viewModel: ViewModel!
override func viewDidLoad() {
super.viewDidLoad()
viewModel = ViewModel()
updateUI()
}
func updateUI() {
nameLabel.text = viewModel.name
ageLabel.text = String(viewModel.age)
}
}
```
**ViewModel.swift**
```swift
import Foundation
class ViewModel {
var name: String = "John"
var age: Int = 30
func saveData() {
// 保存数据到本地存储或网络服务
print("Save data to storage or network service")
}
func fetchData() {
// 从本地存储或网络服务获取数据
print("Fetch data from storage or network service")
}
}
```
**Model.swift**
```swift
import Foundation
class Model: NSObject {
var name: String = ""
var age: Int = 0
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
```
在这个示例中:
* `ViewController`类负责展示UI,并且将ViewModel作为一个依赖注入到自己中。
* `ViewModel`类负责处理数据逻辑,包括保存和获取数据。它也负责更新UI。
* `Model`类是数据模型,包含姓名和年龄的属性。
MVVM模式的优势:
* **分离了界面逻辑(View)和数据逻辑(Model),使得两者更容易维护和扩展**。
* **ViewModel负责将数据转换为UI需要的形式,使得View只需关注显示数据,不用担心数据处理细节**。
要注意的是,这个示例是一个非常简单的案例。如果实际项目复杂一些,可能需要更详尽的逻辑和架构。