Enkapsulacija (programiranje)

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
  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