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ą.