Sobes.tech
Junior — Middle

Explique la principale différence entre les modèles architecturaux MVC et MVVM.

sobes.tech IA

Réponse de l'IA

La principale différence entre MVC (Modèle-Vue-Contrôleur) et MVVM (Modèle-Vue-ViewModel) réside dans la façon dont la liaison entre la vue (View) et la logique de l'interface est établie.

  • MVC : Le contrôleur reçoit l'entrée de l'utilisateur, met à jour le modèle, puis met à jour la vue. La View et le Controller sont étroitement liés, et la mise à jour de la View se fait généralement manuellement.

  • MVVM : Le ViewModel agit comme un intermédiaire entre la View et le Modèle. La View est liée aux propriétés du ViewModel via le mécanisme de data binding, ce qui permet de mettre à jour automatiquement l'interface utilisateur lors de la modification des données sans appel explicite de mise à jour.

Exemple en C# utilisant MVVM et data binding :

public class PersonViewModel : INotifyPropertyChanged
{
    private string name;
    public string Name
    {
        get => name;
        set
        {
            if (name != value)
            {
                name = value;
                OnPropertyChanged(nameof(Name));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName) =>
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

Ici, le ViewModel notifie la View des changements, ce qui simplifie la synchronisation des données et de l'UI.