Sobes.tech
Junior — Middle

Magyarázza el az MVC és MVVM architektúrális minták közötti fő különbséget.

sobes.tech MI

Válasz az MI-től

A MVC (Model-View-Controller) és az MVVM (Model-View-ViewModel) közötti fő különbség az, hogy hogyan történik a kapcsolat a nézet (View) és a felhasználói felület logikája között.

  • MVC: A vezérlő fogadja a felhasználói bemenetet, frissíti a modellt, majd frissíti a nézetet. A View és a Controller szorosan összekapcsolódik, és a View frissítése általában kézi módon történik.

  • MVVM: A ViewModel közvetítőként működik a View és a Model között. A View a ViewModel tulajdonságaihoz kötött a data binding mechanizmuson keresztül, ami lehetővé teszi az UI automatikus frissítését az adatok változásakor, explicit frissítési hívások nélkül.

Példa C#-ban MVVM és data binding használatával:

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

Itt a ViewModel értesíti a View-t a változásokról, ami megkönnyíti az adatok és a UI szinkronizálását.