Sobes.tech
Junior — Middle

Ներկայացրեք հիմնական տարբերությունը MVC և MVVM ճարտարապետական ձևանմուշների միջև։

sobes.tech AI

Պատասխան AI-ից

Հիմնական տարբերությունը MVC (Model-View-Controller) և MVVM (Model-View-ViewModel) միջև այն է, թե ինչպես է կատարվում կապը ներկայացման (View) և ինտերֆեյսի տրամաբանության միջև:

  • MVC: Կոնտրոլերը ստանում է օգտատիրոջ մուտքը, թարմացնում է մոդելը և ապա թարմացնում է ներկայացումը: View և Controller սերտորեն կապված են, և View-ի թարմացումը սովորաբար կատարվում է ձեռքով:

  • MVVM: ViewModel-ը հանդես է որպես միջնորդ View և Model միջև: View-ը կապված է ViewModel-ի հատկությունների հետ data binding մեխանիզմի միջոցով, ինչը թույլ է տալիս ավտոմատ կերպով թարմացնել UI-ն տվյալների փոփոխության դեպքում, առանց բացահայտ կանչերի:

Օրինակ C#-ում MVVM և 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));
}

Այստեղ ViewModel-ը տեղեկացնում է View-ին փոփոխությունների մասին, ինչը հեշտացնում է տվյալների և UI-ի սինխրոնիզացիան։