Sobes.tech
Junior — Middle

Poderia explicar o conceito do padrão MVVM e seus componentes principais?

sobes.tech IA

Resposta da IA

MVVM (Model-View-ViewModel) é um padrão arquitetónico que separa a lógica de apresentação e a lógica de negócio para facilitar a manutenção e os testes das aplicações.

  • Model — contém dados e lógica de negócio, responsável pelo trabalho com os dados (por exemplo, modelos de dados, serviços).
  • View — responsável por mostrar a interface ao utilizador, contém os elementos visuais.
  • ViewModel — intermediário entre Model e View, contém a lógica de apresentação, transforma os dados do Model num formato adequado para a View e gere as ações do utilizador.

O ViewModel geralmente implementa mecanismos de notificação de alterações (por exemplo, INotifyPropertyChanged em C#) para que a View seja atualizada automaticamente quando os dados mudam.

Exemplo de um ViewModel simples em 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));
}