Junior
Welchem Muster gehört MVVM an?
sobes.tech KI
Antwort von AI
Model-View-ViewModel.
Verantwortlichkeiten der Komponenten:
- Model: Repräsentiert Daten und Geschäftslogik. Kennt View oder ViewModel nicht.
- View: Zeigt Daten an und sendet Benutzeraktionen an das ViewModel. Enthält keine Geschäftslogik.
- ViewModel: Verbindet Model und View. Enthält Präsentationslogik, wandelt Daten vom Model für die View um und verarbeitet Benutzeraktionen. Hat keine direkten Referenzen zur View, die Interaktion erfolgt oft über Bindings oder Benachrichtigungsmuster (z.B. ObservableObject in SwiftUI).
Beziehung zwischen Komponenten:
- Die View abonniert Änderungen im ViewModel.
- Das ViewModel aktualisiert die View bei Datenänderungen im Model oder bei der Verarbeitung von Benutzeraktionen.
- Das ViewModel interagiert mit dem Model, um Daten zu erhalten oder zu speichern.
Implementierungsbeispiel (SwiftUI):
// Model
struct User {
let name: String
let age: Int
}
// ViewModel
import SwiftUI
final class UserViewModel: ObservableObject {
@Published var userName: String = ""
@Published var userAge: String = ""
private let user: User
init(user: User) {
self.user = user
self.userName = "Name: \(user.name)"
self.userAge = "Age: \(user.age)"
}
}
// View
import SwiftUI
struct UserView: View {
@ObservedObject var viewModel: UserViewModel
var body: some View {
VStack {
Text(viewModel.userName)
Text(viewModel.userAge)
}
}
}