Sobes.tech
Junior — Middle

როგორ შეიძლება განახორციელოთ კლასების უცვლელობა პროგრამირებაში?

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

ასეთი კლასი, ობიექტის შექმნის შემდეგ, არ იძლევა მისი მდგომარეობის შეცვლის შესაძლებლობას.