Junior — Middle
Vysvětlete hlavní rozdíl mezi architektonickými vzory MVC a MVVM.
sobes.tech AI
Odpověď od AI
Hlavní rozdíl mezi MVC (Model-View-Controller) a MVVM (Model-View-ViewModel) spočívá v tom, jak je navázáno spojení mezi zobrazením (View) a logikou rozhraní.
-
MVC: Řadič přijímá vstup uživatele, aktualizuje model a poté aktualizuje zobrazení. View a Controller jsou úzce propojeny a aktualizace View je obvykle prováděna ručně.
-
MVVM: ViewModel působí jako prostředník mezi View a Modelem. View je navázáno na vlastnosti ViewModelu pomocí mechanismu data binding, což umožňuje automatickou aktualizaci UI při změnách dat bez nutnosti explicitních volání aktualizace.
Pří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));
}
Zde ViewModel oznamuje View o změnách, což usnadňuje synchronizaci dat a UI.