Sobes.tech
Junior — Middle

MVC və MVVM memarlıq nümunələri arasındakı əsas fərqi izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

MVC (Model-View-Controller) və MVVM (Model-View-ViewModel) arasındakı əsas fərq, təqdimat (View) və interfeys məntiqi arasındakı əlaqənin necə qurulmasıdır.

  • MVC: Kontrolçu istifadəçi girişini qəbul edir, modeli yeniləyir və sonra təqdimatı yeniləyir. View və Controller sıx əlaqəlidir və View-un yenilənməsi adətən əl ilə həyata keçirilir.

  • MVVM: ViewModel View və Model arasında vasitəçi kimi çıxış edir. View, data binding mexanizmi vasitəsilə ViewModel-in xüsusiyyətlərinə bağlanır, bu da məlumatlar dəyişdikdə UI-nin avtomatik yenilənməsinə imkan verir, açıq çağırışlara ehtiyac olmadan.

C# istifadə edərək MVVM və data binding nümunəsi:

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

Burada, ViewModel dəyişiklikləri View-ə bildirir, bu da məlumatların və UI-nin sinxronizasiyasını asanlaşdırır.