Enkapsulacija (objektno-orijentisano programiranje)

S Vikipedije, slobodne enciklopedije

U programskim jezicima, enkapsulacija se odnosi na jedan od dva povezana ali različita pojma, a ponekad i na njihovu kombinaciju[1][2]:

  • Mehanizam jezika za zabranu pristupa nekim od komponenti objekta.[3][4]
  • Konstrukt jezika koji olakšava grupisanje podataka i metoda (ili drugih funkcija) koje operišu na tim podacima.[5][6]

Neki teoretičari programskih jezika koriste prvo značenje samo ili u kombinaciji sa drugim kao jedno od osnovnih svojstava objektno orijentisanog programiranja, dok se kod nekih programskih jezika koji omogućavaju leksička zatvorenja enkapsulacija posmatra kao osobina jezika, ortogonalna orijentaciji objekta.

Druga definicija je motivisana činjenicom da u mnogim OOP jezicima sakrivanje komponenti nije automatsko i može biti premošćeno, stoga oni koji preferiraju drugu definiciju sakrivanje informacija definišu kao zaseban pojam.

Reference[uredi | uredi izvor]

  1. ^ Michael Lee Scott, Programming language pragmatics, Edition 2, Morgan Kaufmann. 2006. ISBN 978-0-12-633951-2. стр. 481.: „Mehanizmi enkapsulacije omogućavaju programeru da grupiše podatke i subrutine koje nad njima operišu na jednom mestu, i da sakrije irelevantne detalje od korisnika apstrakcije.“
  2. ^ Nell B. Dale, Chip Weems, Programming and problem solving with Java, Edition 2. . Jones & Bartlett Publishers. 2007. pp. 396. ISBN 978-0-7637-3402-2. 
  3. ^ Mitchell 2003, str. 522.
  4. ^ Pierce, Benjamin (2002). Types and Programming Languages. MIT Press. str. 266. ISBN 978-0-262-16209-8. 
  5. ^ Wm. Paul Rogers (18. 5. 2001). „Encapsulation is not information hiding”. JavaWorld.com. Arhivirano iz originala 29. 10. 2013. g. Pristupljeno 17. 09. 2011. 
  6. ^ Connolly, Thomas M.; Begg, Carolyn E. (2005). „25, "Introduction to Object DMBS", section "Object-oriented concepts”. Database systems: a practical approach to design, implementation, and management (4th izd.). Pearson Education. str. 814. ISBN 978-0-321-21025-8. 

Literatura[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]