Sobes.tech
Junior — Middle

Explicați diferența principală dintre modelele arhitecturale MVC și MVVM.

sobes.tech AI

Răspuns de la AI

Diferența principală dintre MVC (Model-View-Controller) și MVVM (Model-View-ViewModel) constă în modul în care se realizează legătura între vizualizare (View) și logica interfeței.

  • MVC: Controllerul primește intrarea utilizatorului, actualizează modelul și apoi actualizează vizualizarea. View și Controller sunt strâns legate, iar actualizarea View-ului se face de obicei manual.

  • MVVM: ViewModel acționează ca un intermediar între View și Model. View se leagă de proprietățile ViewModel prin mecanismul de data binding, ceea ce permite actualizarea automată a UI-ului atunci când datele se schimbă, fără apeluri explicite de actualizare.

Exemplu în C# folosind MVVM și 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));
}

Aici, ViewModel notifică View-ul despre modificări, ceea ce simplifică sincronizarea datelor și a UI-ului.