Junior
პროგრამირებაში ინკაპსულაცია რას ნიშნავს?
sobes.tech AI
პასუხი AI-სგან
პროგრამირებაში ინკაპსულაცია გულისხმობს მონაცემებისა და მათთან მუშაობის მეთოდების გაერთიანებას ერთ ობიექტში (ობიექტი) და შიდა რეალიზაციის დამალვას გარე სამყაროსგან. ეს საშუალებას აძლევს მონაცემების წვდომის კონტროლს, მათ დაცვას არასწორი ცვლილებებისგან და კოდის შენარჩუნების გამარტივებას, რაც მას უფრო მოდულურს და მოქნილს ხდის.
ინკაპსულაციის ძირითადი უპირატესობები:
- მონაცემების დამალვა: ობიექტის შიდა მდგომარეობა ხელმისაწვდომია მხოლოდ განსაზღვრული მეთოდების (გეტერებისა და სეტერების) მეშვეობით.
- წვდომის კონტროლი: მონაცემების ცვლილებისას შეიძლება გამოყენებულ იქნას ვალიდაციის ლოგიკა.
- კავშირების შემცირება: ერთი ობიექტის შიდა რეალიზაციის ცვლილებები არ მოითხოვს სხვა ობიექტების ცვლილებებს, რომლებიც მას იყენებენ, თუ ინტერფეისი უცვლელია.
- მოწყობის გაუმჯობესება: კოდი უფრო გასაგები და ადვილად მორგებადი ხდება.
მაგალითი JavaScript-ში:
class User {
constructor(name, age) {
this._name = name; // პირადი მახასიათებელი (კონვენცია, JS-ში არ არის სავალდებულო, პირადი ველების ჩათვლით)
this._age = age;
}
getName() { // გეტერი სახელისთვის
return this._name;
}
getAge() { // გეტერი ასაკისთვის
return this._age;
}
setAge(newAge) { // სეტერი ასაკისთვის და ვალიდაცია
if (newAge > 0) {
this._age = newAge;
} else {
console.error("ასაკი უნდა იყოს მეტი ნულისგან.");
}
}
}
const user = new User("Ivan", 30);
console.log(user.getName()); // გეტერით წვდომა: Ivan
user.setAge(31); // ვალიდაციით სეტერით ცვლილება
console.log(user.getAge()); // გეტერით წვდომა: 31
user.setAge(-5); // შეცდომა მცდელობისას