Sobes.tech
Junior — Middle

Explique la principal diferencia entre los patrones arquitectónicos MVC y MVVM.

sobes.tech AI

Respuesta de la IA

La principal diferencia entre MVC (Modelo-Vista-Controlador) y MVVM (Modelo-Vista-ViewModel) radica en cómo se establece la conexión entre la vista (View) y la lógica de la interfaz.

  • MVC: El controlador recibe la entrada del usuario, actualiza el modelo y luego actualiza la vista. La View y el Controller están estrechamente relacionados, y la actualización de la View generalmente se realiza manualmente.

  • MVVM: El ViewModel actúa como intermediario entre la View y el Modelo. La View se enlaza a las propiedades del ViewModel mediante el mecanismo de data binding, lo que permite actualizar automáticamente la interfaz de usuario cuando cambian los datos sin necesidad de llamadas explícitas para actualizar.

Ejemplo en C# usando MVVM y 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));
}

Aquí, el ViewModel notifica a la View sobre los cambios, lo que simplifica la sincronización de datos y la interfaz de usuario.