Diferența dintre abstracție și încapsulare

Abstracție și încapsulare, ambele sunt concepte de bază ale programării (OOP), care permit obiectele reale să fie implementate în cod și program. Sunt foarte diferite, deoarece ambele merg mână în mână. Deși ambele sunt inseparabile din punct de vedere tehnic, nu au nimic în comun literal. Aproape toată încapsulare este o abstractizare, deoarece amândoi maschează ceva, dar au o pondere corectă a diferențelor.

Ce este abstracția?

Abstracția este un concept fundamental OOP, care se concentrează numai pe datele pertinente ale unui obiect și acoperă toate detaliile irelevante care pot sau nu pot fi utilizate pentru o conduită generică sau specializată. Maschează detaliile de fundal și evidențiază elementele esențiale pentru a reduce complexitatea și a îmbunătăți eficiența. Ajută la simplificarea reprezentării modelului de domeniu. Abstracția este mai mult despre idei decât despre evenimente. Acesta acoperă detaliile la nivel de proiectare, oferind utilizatorilor funcționalitate. O abstractizare poate fi numită și obiectul rezultat.

Să luăm un exemplu

Deci, să luăm în considerare motocicleta Un mecanic încearcă să repare motocicleta sau să spunem o anumită secțiune a motocicletei dvs. Sunteți utilizatorul și nu doriți să cunoașteți specificațiile motocicletei dvs. sau ce porțiune s-a rupt de fapt. Nu-ți pasă; pur și simplu îți dorești ciclul moto în starea inițială, fără a-ți face griji pentru detalii. I-ai spus mecanicului ceea ce ai dorit, prin separarea părții de implementare, aceasta se numește abstractizare. Cel mai important lucru pe care l-ați făcut a fost să vă reparați motocicleta în loc să vă concentrați asupra particularităților.

Ce este încapsularea?

Un alt concept de încapsulare OOP leagă datele și funcționalitățile într-o singură componentă, în timp ce a fost stabilit accesul la anumite componente. Încapsularea va îmbunătăți mentenabilitatea aplicației dvs. Acest lucru va oferi utilizatorului multă flexibilitate în utilizarea sistemului. Face mai ușor întregul proces de codare, deoarece nu sunteți interesat decât de ceea ce nu face o altă clasă. Acesta este unul dintre principalele concepte de bază ale OOP, care înfășoară date și date într-o singură unitate. Oferă datelor integritatea fundamentală, apărându-le de lumea exterioară. Ascunde informații suplimentare din lumea exterioară în termeni simpli.

Să luăm un exemplu

Doar trebuie să cunoașteți comportamentul dispozitivului fără să vă faceți griji pentru implementarea detaliilor, cum ar fi senzorii tastaturii și dacă este wireless sau nu etc. Fiecare detaliu descrie mouse-ul, dar este pur și simplu o tastatură indiferent de detalii. Aveți doar o interfață de tastatură, care este indicatorul mouse-ului în această situație și asta am numit Encapsulation

Comparația dintre cap și cap între abstracție și încapsulare (infografie)

Mai jos se află diferența de top 6 între Abstracție și Încapsulare

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

Haideți să discutăm unele dintre diferențele majore dintre Abstracție și Încapsulare:

Principala diferență între abstractizare și încapsulare este că problema este rezolvată prin Abstracție la nivel de proiectare și la nivelul aplicației prin Encapsulation. Abstracția implică ascunderea informațiilor nedorite în timp ce furnizează cele mai importante informații, în timp ce încapsularea implică ascunderea codului și informațiilor într-un singur dispozitiv.

Abstracția vă permite să vă concentrați asupra a ceea ce face elementul în loc de modul în care face, în timp ce încapsularea înseamnă detaliile interioare ale modului de lucru al obiectului. Puteți modifica ulterior cu o tehnică mai bună dacă păstrați confidențial informațiile interioare. Abstracția se concentrează asupra vizionării exterioare, de exemplu schimbarea mașinii, în timp ce Encapsularea se concentrează pe funcționarea internă sau vizualizarea interioară.

Extragerea este acceptată în Java cu interfața și clasa abstractă, iar Encapsularea este acceptată folosind, de exemplu, sisteme de modificare a accesului public, privat și sigur. Aceasta este separarea în Java și OOP între încapsulare și abstractizare. Reamintim că abstractizarea rezolvă problema la nivelul proiectării și încapsularea în nivelul de execuție. Ambele pentru un programator OOP sunt foarte esențiale, dar uneori poate fi greu de explicat. Așa cum am mai spus, scrierea codului și citirea codului altora este una dintre cele mai bune metode de a învăța și stăpâni programarea orientată pe obiecte.

Abstracția ascunde implementarea cu ajutorul interfeței și a clasei abstracte, în timp ce Encapsularea ascunde datele cu ajutorul getterilor și a setatorilor.

Tabelul de comparație al Abstracției față de încapsulare

Mai jos este cea mai înaltă comparație între Abstracție și Încapsulare:

abstracțiune

încapsularea

Abstracția funcționează la nivel de proiectareÎncapsularea funcționează la nivelul aplicației
Abstracția este implementată pentru a ascunde date inutile și a retrage datele relevante.Încapsularea este mecanismul de ascundere a codului și a datelor împreună din lumea exterioară sau a utilizării necorespunzătoare.
El evidențiază care este munca unui obiect în loc de modul în care funcționează obiectulSe concentrează pe detaliile interioare ale modului în care funcționează obiectul. Modificările pot fi făcute ulterior la setări.
Abstracția se concentrează asupra vizionării exterioare, de exemplu schimbarea mașinii.Încapsularea se concentrează pe funcționarea internă sau pe vizualizarea interioară, de exemplu, producția mașinii.
Abstracția este acceptată în Java cu interfața și clasa abstractăÎncapsularea este acceptată folosind de exemplu sisteme publice, private și sigure de modificare a accesului.
Pe scurt, abstractizarea ascunde implementarea cu ajutorul unei interfețe și a unei clase abstracte.Pe scurt, încapsularea ascunde datele cu ajutorul getterilor și a setatorilor.

Concluzie

În acest articol, am văzut ce este Abstracția vs Încapsulare și diferența dintre ele. Deși ambele sunt idei OOP pentru ascunderea datelor, ele sunt destul de distincte unele de altele. Maschează informațiile de fundal și evidențiază punctele de informații critice pentru a reduce complexitatea și a îmbunătăți eficacitatea. Cu cerințe noi, codul încapsulat este foarte flexibil și ușor de modificat.

Articole recomandate

Acesta a fost un ghid pentru diferența maximă dintre Abstracție și Încapsulare. Aici vom discuta, de asemenea, despre diferențele cheie Abstraction vs Encapsulation cu infografie și tabelul de comparație. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Ce este C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Ghid pentru încapsulare în PHP