Diferența dintre abstracție și încapsulare

Diferențele cheie între abstracție și încapsulare

  • Abstracția arată doar date utile, oferind cele mai necesare detalii, în timp ce încapsularea încapsulează codul și datele pentru informațiile necesare.
  • Abstracția se concentrează în principal pe ceea ce ar trebui făcut, în timp ce încapsularea se concentrează pe modul în care ar trebui făcută.
  • Abstracția ascunde complexitatea oferindu-vă o imagine mai abstractă, în timp ce Encapsulation ascunde munca internă, astfel încât să o puteți schimba mai târziu.
  • Abstraction vă ajută să împărțiți programul în mai multe porțiuni independente, în timp ce încapsularea este ușor de schimbat cu noile cerințe.
  • Comparând încapsularea cu abstracția, abstracția rezolvă problemele la nivel de proiectare, în timp ce încapsularea rezolvă problemele la nivel de implementare.
  • Abstracția ascunde detaliile irelevante găsite în cod, în timp ce încapsularea ajută dezvoltatorii să organizeze cu ușurință întregul cod.
Diferența dintre abstracție și încapsulare
Diferența dintre abstracție și încapsulare în Java

Definiţia Abstraction

Abstracția este un concept POO care se concentrează numai pe datele relevante ale unui obiect. Ascunde detaliile de fundal și subliniază punctele de date esențiale pentru reducerea complexității și creșterea eficienței. În general, acesta reține numai informațiile care sunt cele mai relevante pentru acel proces specific. abstracțiune metoda se concentrează în principal pe idee în loc de funcționarea reală.

Definiţia Encapsulation

Încapsularea este o metodă de a face un sistem complex mai ușor de manipulat pentru utilizatorii finali. Utilizatorul nu trebuie să-și facă griji cu privire la detaliile interne și complexitățile sistemului. încapsularea este un proces de împachetare a datelor și a codului, care operează asupra datelor într-o singură entitate. Îl puteți presupune ca un înveliș de protecție care oprește accesul aleatoriu al codului definit în afara acelui înveliș.

Abstracție vs încapsulare
Abstracție vs încapsulare

Diferența dintre abstracție și încapsulare

Iată diferența principală dintre abstracție și încapsulare:

Parametru abstracțiune încapsularea
Utilizați pentru Abstracția rezolvă problema și problemele care apar în etapa de proiectare. Încapsularea rezolvă problema și problema care apar în etapa de implementare.
Concentra Abstracția vă permite să vă concentrați pe ceea ce face obiectul în loc de modul în care o face Încapsularea vă permite să ascundeți codul și datele într-o singură unitate pentru a securiza datele din lumea exterioară.
Punerea în aplicare Puteți utiliza abstracția folosind Interfața și Clasa abstractă. Puteți implementa încapsularea folosind Modificatori de acces (Public, Protejat și Privat.)
Se concentrează Concentrați-vă în principal pe ceea ce ar trebui făcut. Concentrați-vă în primul rând pe modul în care ar trebui făcut.
Aplicatii În timpul nivelului de proiectare. În timpul nivelului de implementare.

De ce ai nevoie de abstracție?

Iată principalele motive pentru care este necesară abstracția pentru programarea orientată pe obiecte:

  • Vă ajută să simplificați reprezentarea modelelor de domenii.
  • Abstracția ascunde detaliile irelevante găsite în cod.
  • Abstracția vă ajută să împărțiți programul în multe concepte independente.
  • Oferă cea mai mare flexibilitate atunci când utilizați obiecte ADT (Abstract Data Type) în diferite situații

De ce ai nevoie de Encapsulation?

Principalele avantaje ale încapsulării sunt

  • Îmbunătățește mentenabilitatea unei aplicații.
  • Oferă flexibilitate utilizatorului pentru a utiliza sistemul foarte ușor
  • Ajută dezvoltatorii să organizeze mai bine codul
  • Ușurează procesul general de codare, deoarece ești preocupat doar de ceea ce face o altă clasă, nu de cum o face
  • Această metodă îi ajută pe dezvoltatori să fie mai „obiectivi” și mai orientați spre rezultate.
  • Codul încapsulat este destul de flexibil și ușor de schimbat cu noile cerințe.
  • Încapsularea face testarea unitară ușoară.
  • Vă permite să reduceți cuplarea modulelor și crește coeziunea în interiorul unui modul, deoarece toate părțile dintr-un singur lucru sunt încapsulate într-un singur loc.
  • Încapsularea vă ajută să schimbați o parte a codului fără a afecta alte părți ale codului.
  • Îmbunătățește lizibilitatea codului aplicației
  • Securitate sporită și facilitează întreținerea aplicației
  • Interfața de încapsulare permite doar o interacțiune bine definită.

Exemplu de abstracție

Să presupunem că doriți să creați o aplicație bancară și vi se cere să colectați toate informațiile despre clientul dvs. Există șanse să veniți cu următoarele informații despre client.

Exemplu de abstracție în POO
Exemplu de abstracție în POO

Dar, nu toate informațiile de mai sus sunt necesare pentru a crea o aplicație bancară.

Deci, trebuie să selectați doar informațiile utile pentru aplicația dvs. bancară din acel pool. Date precum numele, adresa, informațiile fiscale etc. au sens pentru o aplicație bancară.

Exemplu de abstracție în POO
Exemplu de abstracție în POO

Deoarece am preluat/eliminat/selectat informațiile despre clienți dintr-un grup mai mare, procesul este denumit Abstracție.

Cu toate acestea, aceleași informații odată extrase pot fi folosite pentru o gamă largă de aplicații. De exemplu, puteți utiliza aceleași date pentru cererea de spital, cererea de portal de locuri de muncă, o bază de date guvernamentală etc. cu puține modificări sau deloc. Prin urmare, acestea devin datele dvs. de bază. Acesta este un avantaj al abstracției.

Exemplu de încapsulare

Să luăm un exemplu de dispozitiv mobil. Cu ajutorul dispozitivelor mobile, puteți efectua diverse funcții precum fotografierea, trimiterea unui mesaj, înregistrarea video/audio, accesarea webului și multe altele.

Caracteristicile menționate mai sus sunt funcționalități ale majorității smartphone-urilor. Cu toate acestea, nu trebuie să înțelegeți detaliile de funcționare internă ale acelor caracteristici înainte de a utiliza acest program. De exemplu, nu trebuie să știți cum camera dvs. calculează corecția gama sau cum identifică o față umană într-o imagine. Trebuie doar să înveți interfața software. Aceasta este încapsularea.