Sobes.tech
Junior — Middle

Izskaidrojiet galveno atšķirību starp arhitektūras modeļiem MVC un MVVM.

sobes.tech AI

Atbilde no AI

Galvenā atšķirība starp MVC (Model-View-Controller) un MVVM (Model-View-ViewModel) ir tā, kā tiek izveidota saikne starp skatu (View) un lietotāja saskarnes loģiku.

  • MVC: Kontrolieris saņem lietotāja ievadi, atjauno modeli un pēc tam atjauno skatu. View un Controller ir cieši saistīti, un View atjaunošana parasti tiek veikta manuāli.

  • MVVM: ViewModel darbojas kā starpnieks starp View un Model. View ir saistīts ar ViewModel īpašībām, izmantojot datu sasaistes mehānismu, kas ļauj automātiski atjaunināt UI, mainoties datiem, bez skaidriem izsaukumiem.

Piemērs C# ar MVVM un datu sasaisti:

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

Šeit ViewModel paziņo View par izmaiņām, kas atvieglo datu un UI sinhronizāciju.