Abstracția și încapsularea sunt concepte orientate pe obiect de bază (OOP), care vă permit să implementați obiecte din lumea reală în programe și coduri. În timp ce ambele merg mână în mână, ele sunt foarte diferite una de cealaltă. În timp ce fiecare metodă este o încapsulare, este și o abstractizare. În termeni simpli, atunci când puneți împreună lucruri diferite pentru a crea o entitate, creați de fapt un concept - un abstract. În timp ce ambele sunt inseparabile din punct de vedere tehnic, ele nu au nimic în comun. Este aproape adevărat că fiecare încapsulare este o abstractizare pentru că ambii ascund ceva, cu toate acestea, au o parte echitabilă de diferențe.
Abstracția este un concept de bază OOP care se concentrează doar pe datele relevante ale unui obiect și ascunde toate detaliile irelevante care pot sau nu ar putea fi pentru comportamentul generic sau specializat. Acesta ascunde detaliile fundalului și subliniază punctele esențiale pentru a reduce complexitatea și a crește eficiența. Practic, abstractizarea este un instrument de programare pentru a gestiona complexitatea. Abstracția se concentrează mai degrabă pe idei decât pe evenimente. Acesta ascunde detaliile la nivel de proiectare prin furnizarea de funcționalitate utilizatorilor. Obiectul rezultat poate fi numit și abstracție. Programatorul asigură că entitatea numită va avea toate aspectele esențiale incluse și nici una dintre cele irelevante.
Să luăm un exemplu real al abstractizării. Să luăm în considerare cazul unui vehicul, care în acest caz este vehiculul tău. Un mecanic încearcă să vă repare mașina sau să spunem o anumită parte a mașinii. Aici sunteți utilizatorul și nu doriți să intrați în specificul mașinii dvs. sau ce parte a rupt de fapt. Nu-ți pasă de aceste lucruri; vă doriți doar vehiculul dvs. înapoi în starea sa originală, fără a vă faceți griji cu privire la detalii. De fapt, ai spus mecanicului ce vrei, separând partea de implementare. Aceasta este abstractizarea. V-ați concentrat asupra celui mai esențial lucru, care este fixarea mașinii dvs., mai degrabă decât concentrarea asupra specificului.
Encapsularea este încă un alt concept OOP care leagă datele și funcțiile într-o singură componentă în timp ce restricționează accesul la anumite componente. Este unul dintre principalele concepte fundamentale ale OOP care împachetează date și informații sub o singură unitate. În termeni tehnici, încapsularea înseamnă ascunderea atributelor pentru a proteja variabilele de accesul exterior, astfel încât schimbarea într-o parte a unei aplicații să nu afecteze celelalte părți. Dimpotrivă, făcând informațiile mai deschise, riscați să utilizați în mod abuziv datele. Oferă integritate de bază datelor protejând-o de lumea exterioară. În termeni simpli, ascunde detalii suplimentare din lumea exterioară.
Să luăm un exemplu de mouse Bluetooth. Trebuie doar să știți despre comportamentul dispozitivului, fără să vă faceți griji cu privire la detaliile implementării, cum ar fi ce senzori are mouse-ul, este fără fir sau nu, etc. Fiecare detaliu descrie mouse-ul, dar indiferent de detalii, este doar un mouse. Aveți nevoie doar de o interfață pentru a utiliza mouse-ul, care în acest caz este indicatorul mouse-ului. Aceasta este încapsularea.
În timp ce ambele sunt concepte fundamentale legate de OOP și sunt inseparabile din punct de vedere tehnic, ele încă mai au diferențele în multe aspecte.
abstracțiune | încapsularea |
Se ocupă doar de detaliile relevante prin ascunderea celor irelevante pentru a reduce complexitatea, sporind astfel eficiența. | Ea leagă datele și informațiile împreună într-o singură entitate pentru a proteja datele de la surse externe. |
Se referă la ideea de a ascunde date care nu sunt necesare în scopuri de prezentare. | Acesta ascunde datele și codul pentru a restricționa accesul nedorit. |
Se concentrează pe ceea ce, mai degrabă decât pe cum. | Ascunde mecanica internă a modului în care face ceva. |
Ascunde detaliile inutile la nivel de proiectare. | De asemenea, ascunde detaliile, dar la nivelul de implementare. |
Informațiile și datele sunt separate de datele relevante. | Informațiile sunt ascunse într-o capsulă pentru accesul apropiat. |
Ea se ocupă mai mult de idei decât de evenimente. | Ideea este de a proteja datele din lumea exterioară. |
Este implementat folosind clasa abstractă și interfața. | Este implementat folosind modificatori de acces protejați, privați și pachet-privat. |
În timp ce ambele sunt concepte OOP legate de ascunderea datelor, acestea sunt destul de diferite unele de altele. Abstracția se referă, de asemenea, la ascunderea ca și încapsularea, dar în timp ce prima ascunde complexitatea, aceasta din urmă păstrează datele pe care le încapsule prin controlul accesului la ele. Abstracția se referă la conceptul de reprezentare a caracteristicilor necesare prin ascunderea detaliilor irelevante pentru a reduce complexitatea unei aplicații, sporind astfel eficiența. Encapsularea, pe de altă parte, se referă la conceptul de ascundere a tuturor mecanismelor interne ale unui program pentru a proteja informațiile de accesul nedorit. Ea leagă datele și informațiile împreună într-o singură componentă prin limitarea accesului la alte componente.