Incapsulare (programare)

În programare , încapsularea se referă la gruparea datelor cu un set de rutine care permit citirea și manipularea acestora. Acest principiu este adesea însoțit de mascarea acestor date brute pentru a se asigura că utilizatorul nu ocolește interfața destinată acestuia. Întregul este apoi considerat ca o cutie neagră cu un comportament și proprietăți specificate.

Incapsularea este un pilon al programării orientate pe obiecte , în care fiecare clasă definește metode sau proprietăți pentru a interacționa cu membrii datelor, dar acest principiu poate fi găsit în alte stiluri de programare (de exemplu, programare modulară ).

Motivații

Implementare

Principiile încapsulării sunt aplicate în moduri foarte diferite, în funcție de limbă. Dar mai putem găsi două curente principale.

În primul rând, o aplicare relativ strictă a principiilor în limbaje cu obiect pur (în măsura în care termenul respectiv are vreun sens), cum ar fi în SmallTalk sau Eiffel . În acest context, atributele sunt adesea disponibile numai pentru citirea în general în program și, de asemenea, pentru scrierea din interiorul clasei de obiecte. Găsim apoi diverse mijloace de adaptare a acestui cadru la clase prietenoase sau la categorii și ierarhii de obiecte.

În al doilea rând, limbaje precum C ++ , Java sau Ruby și mai general toate limbile influențate de sintaxa C ++, care oferea trei niveluri de vizibilitate:

Acest tip de încapsulare oferă de fapt o altă abordare a încapsulării care nu distinge între citirea și scrierea unui atribut. În acest context, este de asemenea posibil să se utilizeze metode de acces și modificare definite la unul dintre aceste niveluri de vizibilitate în funcție de efectul pe care se dorește să îl obțină. Adesea, metodele de ambele tipuri sunt definite în plus față de atributul care conține de fapt datele. În cele din urmă, mijloacele permit altor clase și funcții gratuite să acceseze în mod liber toate atributele unei clase, așa cum este cazul claselor și funcțiilor prietenoase în C ++.

Note și referințe

  1. (în) Wm. Paul Rogers , „  Incapsularea nu ascunde informații  ” , JavaWorld ,18 mai 2001( citiți online , consultat la 9 decembrie 2016 )

Vezi și tu