Junior
À quel patron appartient MVVM?
sobes.tech IA
Réponse de l'IA
Modèle-Vue-ViewModel.
Responsabilités des composants:
- Modèle: Représente les données et la logique métier. Ne connaît pas la Vue ou le ViewModel.
- Vue: Affiche les données et envoie les actions de l'utilisateur au ViewModel. Ne contient pas de logique métier.
- ViewModel: Relie le Modèle et la Vue. Contient la logique de présentation, transforme les données du Modèle pour la Vue et traite les actions de l'utilisateur. N'a pas de liens directs avec la Vue, l'interaction se fait souvent via des liaisons ou des modèles de notification (par exemple, ObservableObject en SwiftUI).
Relation entre composants:
- La Vue s'abonne aux changements dans le ViewModel.
- Le ViewModel met à jour la Vue lors de changements dans le Modèle ou lors du traitement des actions utilisateur.
- Le ViewModel interagit avec le Modèle pour obtenir ou sauvegarder des données.
Exemple d'implémentation (SwiftUI):
// Modèle
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 = "Nom: \(user.name)"
self.userAge = "Âge: \(user.age)"
}
}
// Vue
import SwiftUI
struct UserView: View {
@ObservedObject var viewModel: UserViewModel
var body: some View {
VStack {
Text(viewModel.userName)
Text(viewModel.userAge)
}
}
}