Sobes.tech
Junior — Middle

Објасните основну разлику између архитектонских образаца MVC и MVVM.

sobes.tech АИ

Одговор од АИ

Glavna razlika između MVC (Model-View-Controller) i MVVM (Model-View-ViewModel) leži u načinu na koji se uspostavlja veza između prikaza (View) i logike interfejsa.

  • MVC: Kontroler prima unos korisnika, ažurira model i zatim ažurira prikaz. View i Controller su usko povezani, a ažuriranje View-a se obično vrši ručno.

  • MVVM: ViewModel deluje kao posrednik između View i Modela. View je povezan sa svojstvima ViewModel-a putem mehanizma data binding, što omogućava automatsko ažuriranje UI-a pri promenama podataka bez eksplicitnih poziva za ažuriranje.

Primer u C# sa MVVM i data binding-om:

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));
}

Ovde, ViewModel obaveštava View o promenama, što olakšava sinhronizaciju podataka i UI.