Sobes.tech
Junior — Middle

Ներկայացրեք, թե ինչ է նշանակում ստեղծել օբյեկտներ, որոնք չեն փոխվում նրանց սկզբնական կարգավիճակից հետո։

sobes.tech AI

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

Անվերափոխելի օբյեկտների ստեղծումը, այսինքն՝ այնպիսի օբյեկտների, որոնք չեն փոխվում նրանց սկզբնական կարգավիճակից հետո, նշանակում է, որ մի անգամ ստեղծված և նրա դաշտերը սահմանված, այս օբյեկտի վիճակը չի կարող փոխվել։ Այսպիսի օբյեկտները կոչվում են immutable (անփոփոխելի)։

C#-ում դա հասանելի է, օրինակ, հետևյալ կերպ՝

  • դաշտերը հայտարարել որպես readonly;
  • հատկություններում միայն getter-ներ ունենալ (չունեն setter-ներ);
  • բոլոր տվյալները սկզբնավորել կոնստրուկտորով։

Անփոփոխ օբյեկտների առավելությունները՝

  • բազմատողային անվտանգության ապահովում առանց լրացուցիչ սինխրոնիզացիայի։
  • կոդի պարզեցում, քանի որ օբյեկտի վիճակը չի փոխվում։
  • օգտագործում որպես բանալի հավաքածուներում և cache-ներում։

Օրինակ՝

public class Person
{
    public string Name { get; }
    public int Age { get; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Person օբյեկտի օրինակ ստեղծելուց հետո, նրա հատկությունները փոխել հնարավոր չէ։