Sobes.tech
Junior — Middle

Ի՞նչ սկզբունքներ պետք է օգտագործել Java- ում դաս ստեղծելիս՝ այն անփոփոխ դարձնելու համար։

sobes.tech AI

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

Java-յում դասը անփոփոխ (immutable) դարձնելու համար անհրաժեշտ է հետևել մի քանի սկզբունքների:

  1. Դասը հայտարարել որպես final — որպեսզի հնարավոր չլինի ստեղծել ենթակլաս, որը կփոխի վարքագիծը:
  2. Բոլոր դաշտերը դարձնել private և final — որպեսզի դրանք հնարավոր չլինի փոխել հետո՝ ինիցիալիզացիայի ժամանակ:
  3. Չտալ setter-ներ (մեթոդներ դաշտերի փոփոխության համար):
  4. Բոլոր դաշտերը ինիցիալիզացնել կոնստրուկտորով:
  5. Եթե դաշտերը հղումներ են փոփոխվող օբյեկտների (օրինակ, զանգվածներ, հավաքածուներ), ապա ստեղծել դրանց պատճենները նշանակման և 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;
    }
}

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