Sobes.tech
Junior — Middle

Spiega la principale differenza tra i pattern architetturali MVC e MVVM.

sobes.tech AI

Risposta dell'AI

La principale differenza tra MVC (Model-View-Controller) e MVVM (Model-View-ViewModel) risiede nel modo in cui viene stabilita la connessione tra la vista (View) e la logica dell'interfaccia.

  • MVC: Il controller riceve l'input dell'utente, aggiorna il modello e poi aggiorna la vista. View e Controller sono strettamente collegati, e l'aggiornamento della View avviene generalmente manualmente.

  • MVVM: Il ViewModel agisce come intermediario tra View e Model. La View si collega alle proprietà del ViewModel tramite il meccanismo di data binding, che consente di aggiornare automaticamente l'interfaccia utente quando i dati cambiano, senza chiamate esplicite di aggiornamento.

Esempio in C# usando MVVM e 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));
}

Qui, il ViewModel notifica alla View le modifiche, semplificando la sincronizzazione dei dati e dell'UI.