Junior
U čemu je smisao enkapsulacije u programiranju?
sobes.tech АИ
Одговор од АИ
Svrha enkapsulacije u programiranju je ujedinjavanje podataka i metoda za rad s njima u jedinstveni objekat (entitet) i skrivanje unutrašnje implementacije od spoljnog sveta. To omogućava kontrolu pristupa podacima, zaštitu od nepravilnih promena i pojednostavljenje održavanja koda, čineći ga modularnijim i fleksibilnijim.
Glavne prednosti enkapsulacije:
- Skrivanje podataka: Interno stanje objekta je dostupno samo putem određenih metoda (gettera i settera).
- Kontrola pristupa: Logika validacije može se primeniti pri promeni podataka.
- Smanjenje povezanosti: Promene u unutrašnjoj implementaciji jednog objekta ne zahtevaju promene u drugim objektima koji ga koriste, pod uslovom da interfejs ostane nepromenjen.
- Poboljšanje održavanja: Kod postaje razumljiviji i lakši za modifikaciju.
Primer u JavaScript-u:
class User {
constructor(name, age) {
this._name = name; // Privatna svojstvo (konvencija, nije obavezno u JS do privatnih polja)
this._age = age;
}
getName() { // Getter za ime
return this._name;
}
getAge() { // Getter za starost
return this._age;
}
setAge(newAge) { // Setter za starost sa validacijom
if (newAge > 0) {
this._age = newAge;
} else {
console.error("Starost mora biti veća od nule.");
}
}
}
const user = new User("Ivan", 30);
console.log(user.getName()); // Pristup putem gettera: Ivan
user.setAge(31); // Promena putem settera sa validacijom
console.log(user.getAge()); // Pristup putem gettera: 31
user.setAge(-5); // Greška pri pokušaju neispravne promene