Idi na sadržaj

Enkapsulacija (programiranje)

S Wikipedije, slobodne enciklopedije

U objektno orijentiranom programiranju, enkapsulacija ili čahurenje označava grupisanje podataka sa metodama koje radi s tim podacima, ili restrikciju direktnog pristupa nekim komponentama objekta.[1] Enkapsulacija se koristi za skrivanje vrijednosti ili stanja struktuiranog podatkovnog objekta unutar klase, sprečavajući direktan pristup njima od strane klijenta u smislu otkrivanja detalja skrivene implementacije ili narušavanja stanja nepromjenjivosti koju održavaju druge metode.

Javno dostupne metode se generalno daju u klasi za pristup ili izmjenu stanja na apstraktniji način. U praksi se ponekad zadaju tzv. getteri i setteri za pristup vrijednostima indirektno, ali, iako ne neophodno krše apstraktnu enkapsulaciju, često se smatraju putokazom potencijalno slabe dizajnerske prakse u objektno orijentiranom programiranju[2] (antiobrazac).

Ovaj mehanizam nije unikatan samo za OOP. Implementacije apstraktnih tipova podataka, npr. modula, nudi sličan oblik enkapsulacije. Sličnost je objašnjena od teoretičara programskih jezika u terminima egzistencijalnih tipova.[3]

Reference

[uredi | uredi izvor]
  1. Rogers, Wm. Paul (18. 5. 2001). "Encapsulation is not information hiding". JavaWorld. Pristupljeno 20. 7. 2020.
  2. Holub, Allen (5. 9. 2003). "Why Getter and Setter methods are evil". Info World. JavaWorld. Arhivirano s originala 29. 7. 2020. Pristupljeno 17. 1. 2021.CS1 održavanje: bot: nepoznat status originalnog URL-a (link)
  3. Pierce 2002, § 24.2 Data Abstraction with Existentials