Sobes.tech
Junior — Middle

Môžete vysvetliť koncept vzoru MVVM a jeho hlavné komponenty?

sobes.tech AI

Odpoveď od AI

MVVM (Model-View-ViewModel) je architektonický vzor, ktorý rozdeľuje logiku prezentácie a biznis logiku na uľahčenie údržby a testovania aplikácií.

  • Model — obsahuje dáta a biznis logiku, zodpovedá za prácu s dátami (napríklad dátové modely, služby).
  • View — zodpovedá za zobrazovanie používateľského rozhrania, obsahuje vizuálne prvky.
  • ViewModel — sprostredkovateľ medzi Modelom a View, obsahuje logiku prezentácie, transformuje dáta z Modelu do formátu vhodného pre View a spravuje akcie používateľa.

ViewModel zvyčajne implementuje mechanizmy na oznámenie zmien (napríklad INotifyPropertyChanged v C#), aby sa View automaticky aktualizovalo pri zmene dát.

Príklad jednoduchého ViewModelu v C#:

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