Sobes.tech
Junior — Middle

Java-ში კლასი შექმნისას რა პრინციპები უნდა გამოიყენოს, რათა ის შეუცვლელი გახდეს?

sobes.tech AI

პასუხი AI-სგან

Java-ში კლასი, რომელიც არ შეიცვლება (immutable), უნდა იყოს დაცული რამდენიმე პრინციპის დაცვით:

  1. გამოაცხადეთ კლასი final — რათა არ შეიქმნას ქვესკლასი, რომელიც შეცვლის ქცევას.
  2. ყველა ველი გახადეთ private და final — რათა მათ შემდეგი ინიციალიზაციის შემდეგ არ შეიძლება შეცვლა.
  3. არ მიაწოდოთ setter-ები (მეთოდები ველების შეცვლისთვის).
  4. ყველა ველი ინიციალიზაცია მოახდინეთ კონსტრუქტორით.
  5. თუ ველები ეხებიან შეცვლად ობიექტებს (მაგ., მასივები, კოლექციები), შექმენით მათი ასლები მიცემის და დაბრუნების დროს, რათა გარე ცვლილებები არ ზეგავლენდეს შიდა მდგომარეობაზე.

მაგალითი:

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

ასეთი კლასი, ობიექტის შექმნის შემდეგ, არ იძლევა მისი მდგომარეობის შეცვლის საშუალებას, რაც სასარგებლოა თრედების უსაფრთხოებისა და ქცევის წინასწარ განსაზღვრისთვის.