Razlika između apstrakcije i enkapsulacije

Ključne razlike između apstrakcije i enkapsulacije

  • Apstrakcija prikazuje samo korisne podatke pružajući najnužnije detalje, dok enkapsulacija obavija kod i podatke za potrebne informacije.
  • Apstrakcija je usmjerena uglavnom na ono što treba učiniti, dok je enkapsulacija usmjerena na to kako bi se to trebalo učiniti.
  • Apstrakcija skriva složenost dajući vam apstraktniju sliku, dok enkapsulacija skriva unutarnji rad tako da ga kasnije možete promijeniti.
  • Apstrakcija vam pomaže podijeliti program na mnogo neovisnih dijelova, dok je enkapsulaciju lako promijeniti s novim zahtjevima.
  • Uspoređujući enkapsulaciju i apstrakciju, apstrakcija rješava probleme na razini dizajna dok enkapsulacija rješava probleme na razini implementacije.
  • Apstrakcija skriva nebitne detalje koji se nalaze u kodu, dok enkapsulacija pomaže programerima da jednostavno organiziraju cijeli kod.
Razlika između apstrakcije i enkapsulacije
Razlika između apstrakcije i enkapsulacije u Java

Definicija apstrakcije

Apstrakcija je OOP koncept koji se fokusira samo na relevantne podatke objekta. Skriva pozadinske detalje i naglašava bitne podatkovne točke za smanjenje složenosti i povećanje učinkovitosti. Općenito zadržava samo informacije koje su najrelevantnije za taj specifični proces. Apstrakcija metoda se uglavnom fokusira na ideju umjesto na stvarno funkcioniranje.

Definicija enkapsulacije

Enkapsulacija je metoda koja krajnjim korisnicima olakšava rukovanje složenim sustavom. Korisnik ne mora brinuti o internim detaljima i složenosti sustava. ovijanje je proces omatanja podataka i koda, koji djeluju na podacima u jednu cjelinu. Možete ga pretpostaviti kao zaštitni omotač koji zaustavlja nasumični pristup kodu definiranom izvan tog omotača.

Apstrakcija vs enkapsulacija
Apstrakcija vs enkapsulacija

Razlika između apstrakcije i enkapsulacije

Evo glavne razlike između apstrakcije i enkapsulacije:

Parametar Apstrakcija ovijanje
Koristiti za Apstrakcija rješava probleme i probleme koji se javljaju u fazi projektiranja. Enkapsulacija rješava problem i problem koji se javlja u fazi implementacije.
fokus Apstrakcija vam omogućuje da se usredotočite na ono što objekt radi umjesto na to kako to radi Enkapsulacija vam omogućuje skrivanje koda i podataka u jednu jedinicu kako biste zaštitili podatke od vanjskog svijeta.
Izvršenje Možete koristiti apstrakciju koristeći sučelje i apstraktnu klasu. Enkapsulaciju možete implementirati pomoću modifikatora pristupa (javni, zaštićeni i privatni.)
usredotočuje Usredotočite se uglavnom na ono što treba učiniti. Usredotočite se prije svega na to kako to treba učiniti.
primjena Tijekom razine dizajna. Tijekom razine implementacije.

Zašto vam je potrebna apstrakcija?

Ovdje su glavni razlozi zašto je apstrakcija potrebna za objektno orijentirano programiranje:

  • Pomaže vam da pojednostavite prikaz modela domene.
  • Apstrakcija skriva nebitne detalje koji se nalaze u kodu.
  • Apstrakcija vam pomaže podijeliti program na mnoge neovisne koncepte.
  • Nudi najveću fleksibilnost pri korištenju ADT (Abstract Data Type) objekata u različitim situacijama

Zašto vam je potrebna enkapsulacija?

Glavne prednosti enkapsulacije su

  • Poboljšava mogućnost održavanja aplikacije.
  • Korisniku nudi fleksibilnost za vrlo jednostavno korištenje sustava
  • Pomaže programerima da bolje organiziraju kod
  • Čini cjelokupni proces kodiranja lakšim, jer vas zanima samo što druga klasa radi, a ne kako to radi
  • Ova metoda pomaže programerima da budu 'objektivniji' i orijentirani na rezultate.
  • Enkapsulirani kod prilično je fleksibilan i lako se mijenja s novim zahtjevima.
  • Enkapsulacija olakšava testiranje jedinice.
  • Omogućuje vam smanjenje spajanja modula i povećava koheziju unutar modula jer su svi dijelovi jedne stvari inkapsulirani na jednom mjestu.
  • Enkapsulacija vam pomaže promijeniti dio koda bez utjecaja na druge dijelove koda.
  • Poboljšava čitljivost koda aplikacije
  • Poboljšana sigurnost i olakšava održavanje aplikacije
  • Sučelje za enkapsulaciju omogućuje samo dobro definiranu interakciju.

Primjer apstrakcije

Pretpostavimo da želite izraditi bankovnu aplikaciju i od vas se traži da prikupite sve podatke o svom klijentu. Postoje šanse da ćete doći do sljedećih informacija o kupcu.

Primjer apstrakcije u OOP-u
Primjer apstrakcije u OOP-u

No, nisu sve gore navedene informacije potrebne za izradu bankovne aplikacije.

Dakle, trebate odabrati samo korisne informacije za svoju bankovnu aplikaciju iz tog skupa. Podaci kao što su ime, adresa, porezni podaci itd. imaju smisla za bankovnu aplikaciju.

Primjer apstrakcije u OOP-u
Primjer apstrakcije u OOP-u

Budući da smo dohvatili/uklonili/odabrali podatke o klijentima iz većeg skupa, proces se naziva apstrakcija.

Međutim, iste informacije kada se izvuku mogu se koristiti za širok raspon primjena. Na primjer, možete koristiti iste podatke za bolničku prijavu, prijavu na portalu za posao, državnu bazu podataka itd. s malo ili bez ikakvih izmjena. Stoga to postaje vaš glavni podatak. Ovo je prednost apstrakcije.

Primjer enkapsulacije

Uzmimo primjer mobilnog uređaja. Uz pomoć mobilnih uređaja možete obavljati razne funkcije poput snimanja slike, slanja poruke, snimanja videa/audija, pristupa webu i još mnogo toga.

Gore navedene značajke su funkcije većine pametnog telefona. Međutim, ne morate razumjeti pojedinosti unutarnjeg funkcioniranja tih značajki prije korištenja ovog programa. Na primjer, ne morate znati kako vaša kamera izračunava gama korekciju ili identificira ljudsko lice na slici. Vi samo trebate naučiti sučelje softvera. Ovo je enkapsulacija.