Sobes.tech
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)
        }
    }
}