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 օբյեկտի օրինակ ստեղծելուց հետո, նրա հատկությունները փոխել հնարավոր չէ։