Junior — Middle
Vysvetlite hlavný rozdiel medzi architektonickými vzormi MVC a MVVM.
sobes.tech AI
Odpoveď od AI
Hlavný rozdiel medzi MVC (Model-View-Controller) a MVVM (Model-View-ViewModel) spočíva v spôsobe, akým je naviazané spojenie medzi zobrazením (View) a logikou rozhrania.
-
MVC: Kontrolér prijíma vstup používateľa, aktualizuje model a následne aktualizuje zobrazenie. View a Controller sú úzko prepojené a aktualizácia View sa zvyčajne vykonáva manuálne.
-
MVVM: ViewModel pôsobí ako sprostredkovateľ medzi View a Modelom. View je naviazané na vlastnosti ViewModelu prostredníctvom mechanizmu data binding, čo umožňuje automatickú aktualizáciu UI pri zmene dát bez explicitných volaní na aktualizáciu.
Príklad v C# s použitím MVVM a data binding:
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));
}
Tu, ViewModel oznamuje View o zmenách, čo uľahčuje synchronizáciu dát a UI.