Junior — Middle
როგორ შეიძლება განახორციელოთ კლასების უცვლელობა პროგრამირებაში?
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;
}
}
ასეთი კლასი, ობიექტის შექმნის შემდეგ, არ იძლევა მისი მდგომარეობის შეცვლის შესაძლებლობას.