Junior — Middle
Ի՞նչ սկզբունքներ պետք է օգտագործել Java- ում դաս ստեղծելիս՝ այն անփոփոխ դարձնելու համար։
sobes.tech AI
Պատասխան AI-ից
Java-յում դասը անփոփոխ (immutable) դարձնելու համար անհրաժեշտ է հետևել մի քանի սկզբունքների:
- Դասը հայտարարել որպես
final— որպեսզի հնարավոր չլինի ստեղծել ենթակլաս, որը կփոխի վարքագիծը: - Բոլոր դաշտերը դարձնել
privateևfinal— որպեսզի դրանք հնարավոր չլինի փոխել հետո՝ ինիցիալիզացիայի ժամանակ: - Չտալ setter-ներ (մեթոդներ դաշտերի փոփոխության համար):
- Բոլոր դաշտերը ինիցիալիզացնել կոնստրուկտորով:
- Եթե դաշտերը հղումներ են փոփոխվող օբյեկտների (օրինակ, զանգվածներ, հավաքածուներ), ապա ստեղծել դրանց պատճենները նշանակման և getter-ներից վերադարձման ժամանակ, որպեսզի արտաքին փոփոխությունները չազդեն ներքին վիճակի վրա:
Օրինակ՝
public final class ImmutablePerson {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Այսպիսի դասը, օբյեկտ ստեղծելուց հետո, թույլ չի տալիս փոխել նրա վիճակը, ինչը օգտակար է թելային անվտանգության և վարքագծի կանխատեսելիության համար։