Sobes.tech
Junior — Middle

Selgitage arhitektuurimustrite MVC ja MVVM põhierinevust.

sobes.tech AI

Vastus AI-lt

Peamine erinevus MVC (Model-View-Controller) ja MVVM (Model-View-ViewModel) vahel seisneb selles, kuidas toimub ühendus vaate (View) ja kasutajaliidese loogika vahel.

  • MVC: Kontroller võtab kasutaja sisendi vastu, uuendab mudelit ja seejärel uuendab vaadet. View ja Controller on tihedalt seotud ning View uuendamine toimub tavaliselt käsitsi.

  • MVVM: ViewModel toimib vaheühendina View ja Model vahel. View on seotud ViewModel-i omadustega data binding-mehhanismi kaudu, mis võimaldab automaatselt UI-d uuendada andmete muutmisel, ilma otseste kutsunguteta.

Näide C#-s MVVM-i ja data binding-iga:

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

Siin teavitab ViewModel View-d muudatustest, mis lihtsustab andmete ja UI sünkroniseerimist.