Sobes.tech
Junior — Middle

Կարող եք բացատրել MVVM ձևանմուշի կոնցեպցիան և դրա հիմնական բաղադրիչները?

sobes.tech AI

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

MVVM (Model-View-ViewModel) — ճարտարապետական մոդել է, որը բաժանում է ներկայացման տրամաբանությունը և բիզնես տրամաբանությունը՝ ծրագրերի պահպանման և թեստավորման հեշտացման համար:

  • Model — պարունակում է տվյալներ և բիզնես տրամաբանություն, պատասխանատու է տվյալների հետ աշխատելու համար (օրինակ՝ տվյալների մոդելներ, ծառայություններ):
  • View — պատասխանատու է օգտագործողի ինտերֆեյսի ցուցադրման համար, պարունակում է տեսողական տարրեր:
  • ViewModel — միջնորդ է Model և View-ի միջև, պարունակում է ներկայացման տրամաբանությունը, փոխում է Model-ից ստացված տվյալները View-ի համար հարմար ձևաչափի և կառավարում է օգտագործողի գործողությունները:

ViewModel-ը սովորաբար իրականացնում է փոփոխությունների մասին ծանուցման մեխանիզմներ (օրինակ՝ INotifyPropertyChanged C#-ում), որպեսզի View-ը ավտոմատ կերպով թարմացվի տվյալների փոփոխության ժամանակ:

Օրինակ՝ պարզ ViewModel C#-ում:

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