Sobes.tech
Junior — Middle

Можете ли да обясните концепцията за патърна MVVM и неговите основни компоненти?

sobes.tech AI

Отговор от AI

MVVM (Model-View-ViewModel) е архитектурен модел, който разделя логиката на представяне и бизнес логиката за улесняване на поддръжката и тестването на приложения.

  • Model — съдържа данни и бизнес логика, отговорен за работата с данните (например модели на данни, услуги).
  • View — отговорен за показването на потребителския интерфейс, съдържа визуални елементи.
  • ViewModel — посредник между Model и View, съдържа логиката на представяне, преобразува данните от Model във формат, подходящ за View, и обработва действията на потребителя.

ViewModel обикновено реализира механизми за уведомяване за промени (например, INotifyPropertyChanged в C#), така че View да се актуализира автоматично при промяна на данните.

Пример за прост ViewModel на 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));
}