Enkapsulacija (objektno-orijentisano programiranje)

Izvor: Wikipedija
Prijeđi na navigaciju Prijeđi na pretragu

U programskom jeziku, 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 nad tim podacima.[5][6]

Neki teoretičari programskih jezika koriste prvo značenje samo ili u kombinaciji sa drugim značenjem 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.

Izvori[uredi | uredi kod]

  1. Michael Lee Scott, Programming language pragmatics, Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 481: „Mehanizmi enkapsulacije omogućavaju programeru da grupiše podatke i subrutine koje nad njima operišu zajedno 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, ISBN 0-7637-3402-0, p. 396
  3. John C. Mitchell, Concepts in programming languages, Cambridge University Press, 2003, ISBN 0-521-78098-5, p.522
  4. Pierce, Benjamin (2002). Types and Programming Languages. MIT Press. ISBN 0-262-16209-1.  p. 266
  5. Wm. Paul Rogers, Encapsulation is not information hiding Arhivirano 2013-10-29 na Wayback Machine-u, JavaWorld.com, 05/18/01
  6. Thomas M. Connolly, Carolyn E. Begg, Database systems: a practical approach to design, implementation, and management, Edition 4, Pearson Education, 2005, ISBN 0-321-21025-5, Chapter 25, "Introduction to Object DMBS", section "Object-oriented concepts", p. 814

Vanjske veze[uredi | uredi kod]