Diferența dintre abstractizare și încapsulare Diferență între

Anonim

, veți implementa 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, ei au cota lor echitabilă de diferențe.

Ce este abstractizarea?

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 reducerea complexității și creșterea eficienței. 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.

Ce este încapsularea?

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.

Diferența dintre abstractizare și încapsulare

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

  1. Diferențele în "definiția" abstractizării și încapsulării - Abstracția este un concept fundamental OOP care pune accentul pe toate aspectele esențiale ale unui obiect prin ascunderea detaliilor irelevante pentru a crește eficiența și a elimina complexitatea. Încapsularea, pe de altă parte, este un mecanism de ascundere a datelor care împachetează datele și informațiile dintr-o capsulă pentru a restricționa accesul din lumea exterioară.
  2. Diferențele în "funcționalitate" ale abstractizării și încapsulării - Abstracția este un mecanism de ascundere a datelor care evidențiază numai caracteristicile esențiale pentru a simplifica programele complexe, în timp ce încapsularea este o metodă de legare datele și codurile într-o singură entitate. Ideea este de a proteja detaliile implementării de accesul extern.
  3. Diferențele în "implementarea" abstractizării și încapsulării - Abstracția este implementată folosind clasă abstractă și interfață, în timp ce încapsularea este implementată folosind modificatori de acces. Sunt folosite cinci tipuri de modificatori pentru a încapsula date: private, publice, interne, protejate și protejate interne.
  4. Diferențele în "Conceptul" al abstractizării și încapsulării - Ideea din spatele abstractizării este să se concentreze mai degrabă pe ceea ce, mai degrabă decât pe modul în care. Encapsularea ascunde mecanica internă a modului în care. De exemplu, atunci când conduceți o mașină, știți exact ce face pedala de frână, dar este posibil să nu știți întregul mecanism din spatele acesteia deoarece datele sunt încapsulate.
  5. Diferențe în "Exemplu" de abstractizare și încapsulare - Să luăm un exemplu de smartphone. Știți ce face, dar este posibil să nu știți cum face ceea ce face. Îți pasă doar de ecranul de afișare și de butoanele tastaturii, mai degrabă decât să vă faceți griji cu privire la circuitele sale interioare. Aici, smartphone-ul este un abstract în care detaliile de implementare interioară sunt încapsulate.

Abstracție vs. încapsulare cu tabelul de comparație

Abstracție Encapsulare
Se referă numai la detaliile relevante prin ascunderea celor irelevante pentru a reduce complexitatea, crescând astfel eficiența. Aceasta 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. 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.
Se ocupă mai degrabă 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 pachete private.

Rezumat

Î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 ascundere ca î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.