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.