Junior — Middle
Java-ში კლასი შექმნისას რა პრინციპები უნდა გამოიყენოს, რათა ის შეუცვლელი გახდეს?
sobes.tech AI
პასუხი AI-სგან
Java-ში კლასი, რომელიც არ შეიცვლება (immutable), უნდა იყოს დაცული რამდენიმე პრინციპის დაცვით:
- გამოაცხადეთ კლასი
final— რათა არ შეიქმნას ქვესკლასი, რომელიც შეცვლის ქცევას. - ყველა ველი გახადეთ
privateდაfinal— რათა მათ შემდეგი ინიციალიზაციის შემდეგ არ შეიძლება შეცვლა. - არ მიაწოდოთ setter-ები (მეთოდები ველების შეცვლისთვის).
- ყველა ველი ინიციალიზაცია მოახდინეთ კონსტრუქტორით.
- თუ ველები ეხებიან შეცვლად ობიექტებს (მაგ., მასივები, კოლექციები), შექმენით მათი ასლები მიცემის და დაბრუნების დროს, რათა გარე ცვლილებები არ ზეგავლენდეს შიდა მდგომარეობაზე.
მაგალითი:
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;
}
}
ასეთი კლასი, ობიექტის შექმნის შემდეგ, არ იძლევა მისი მდგომარეობის შეცვლის საშუალებას, რაც სასარგებლოა თრედების უსაფრთხოებისა და ქცევის წინასწარ განსაზღვრისთვის.