Sobes.tech
Junior — Middle

MVC va MVVM arxitektura naqshlarining asosiy farqini tushuntiring.

sobes.tech AI

AIdan javob

Asosiy farq MVC (Model-View-Controller) va MVVM (Model-View-ViewModel) o'rtasida, ularning qanday qilib View bilan interfeys mantiqi o'rtasidagi bog'lanish amalga oshirilishidadir.

  • MVC: Kontroller foydalanuvchi kirishini qabul qiladi, modelni yangilaydi va keyin View-ni yangilaydi. View va Controller yaqin bog'langan, va View-ni yangilash odatda qo'lda amalga oshiriladi.

  • MVVM: ViewModel View va Model o'rtasida vositachi sifatida xizmat qiladi. View, data binding mexanizmi orqali ViewModel ning xususiyatlariga bog'lanadi, bu esa ma'lumotlar o'zgarganda UI-ni avtomatik yangilash imkonini beradi, aniq chaqiruvsiz.

C# da MVVM va data binding bilan misol:

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

Bu yerda, ViewModel o'zgarishlarni View-ga bildiradi, bu esa ma'lumotlar va UI ning sinxronlashtirilishini osonlashtiradi.