Sobes.tech
Junior — Middle

Paaiškinkite pagrindinį skirtumą tarp architektūrinių modelių MVC ir MVVM.

sobes.tech AI

Atsakymas iš AI

Pagrindinis skirtumas tarp MVC (Model-View-Controller) ir MVVM (Model-View-ViewModel) yra tas, kaip yra nustatomas ryšys tarp vaizdo (View) ir sąsajos logikos.

  • MVC: Valdiklis priima naudotojo įvestį, atnaujina modelį ir tada atnaujina vaizdą. View ir Controller yra glaudžiai susiję, o View atnaujinimas dažniausiai atliekamas rankiniu būdu.

  • MVVM: ViewModel veikia kaip tarpininkas tarp View ir Model. View yra susieta su ViewModel savybėmis per duomenų ryšio mechanizmą, leidžiantį automatiškai atnaujinti UI, kai keičiasi duomenys, be aiškių iškvietimų.

Pavyzdys C# su MVVM ir duomenų ryšiu:

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

Čia, ViewModel praneša View apie pasikeitimus, kas palengvina duomenų ir UI sinchronizaciją.