Verschil tussen encapsulatie en abstractie

Encapsulation vs Abstraction

Encapsulation and Abstraction zijn twee verschillende maar gerelateerde concepten die worden gevonden in OOP (Object Oriented Programming) -talen. Inkapseling is het concept van het combineren van gegevens en gedrag samen als een enkele entiteit. Aan de andere kant is abstractie het proces van presenteren hoe een entiteit zich gedraagt ​​\ in tegenstelling tot hoe het wordt geïmplementeerd.

Wat is inkapseling?

Encapsulation is het proces van het omwikkelen van gegevens en bewerkingen die daarop van toepassing zijn in een enkele entiteit. Dit betekent in feite dat voor toegang tot gegevens bepaalde vooraf gedefinieerde methoden moeten worden gebruikt. Met andere woorden, ingekapselde gegevens zijn niet rechtstreeks toegankelijk. Dit zorgt ervoor dat de integriteit van gegevens wordt bewaard omdat de gebruiker niet in staat is om de gegevens direct te openen en te wijzigen zoals hij / zij dat wenst. De gebruikers krijgen of stellen de gegevenswaarden alleen in via de methoden die openbaar beschikbaar zijn voor de gebruikers. Deze methoden bieden meestal gegevensvalidatie zodat alleen de gegevens in de juiste indeling in de velden kunnen worden ingevoegd. Daarom zijn de voordelen van Encapsulation drievoudig. Via Encapsulation kan het programmeerapparaat velden van een klasse alleen-lezen maken of alleen schrijven. Ten tweede kan een klasse totale controle hebben over wat er in zijn velden is opgeslagen. Ten slotte hoeven de gebruikers van een klasse zich geen zorgen te maken over de manier waarop de gegevens worden opgeslagen. In Java kan de programmeur alle instantievariabelen als privé declareren en de methoden get (en) instellen (die openbaar zijn) om de privévelden te openen en te wijzigen.

Wat is abstractie?

Abstractie is het proces waarbij de presentatiedetails van de implementatiedetails worden gescheiden. Dit wordt gedaan zodat de ontwikkelaar wordt ontheven van de meer complexe implementatiedetails. In plaats daarvan kan de programmeur zich concentreren op de presentatie of de gedragsdetails van de entiteit. Simpel gezegd, abstractie richt zich op hoe een bepaalde entiteit kan worden gebruikt in plaats van hoe deze wordt geïmplementeerd. Abstractie verbergt in wezen de implementatiedetails, zodat zelfs als de implementatiemethode in de loop van de tijd verandert, de programmeur zich geen zorgen hoeft te maken over hoe het zijn programma zou beïnvloeden. Een systeem kan worden geabstraheerd in verschillende lagen of niveaus. Laagniveau-abstractielagen zullen bijvoorbeeld hardwaregegevens onthullen, terwijl abstractie op hoog niveau alleen de bedrijfslogica van de entiteit zal onthullen. De term abstractie kan worden gebruikt om naar zowel een entiteit als een proces te verwijzen en dit leidt tot enige verwarring. Als een proces, betekent abstractie het extraheren van essentiële details terwijl de niet-essentiële details van een item of een groep items worden genegeerd, terwijl als een entiteit, abstraction betekent een model of een weergave van een entiteit met alleen de essentiële details. In Java kan de programmeur het trefwoordsamenvatting gebruiken om een ​​klasse te declareren als een abstracte entiteit, die de essentiële definiërende kenmerken van een echte wereldentiteit vertegenwoordigt.

Wat is het verschil tussen encapsulatie en abstractie?

Hoewel Encapsulation en Abstraction zeer verwante concepten zijn die worden gevonden in Object Oriented Programming-talen, hebben ze belangrijke verschillen. Abstractie is een techniek die ons helpt te identificeren wat zichtbaar moet zijn en wat verborgen moet worden. Inkapseling is de techniek om de informatie zodanig te verpakken dat zichtbaar wordt wat zichtbaar moet zijn en wat verborgen moet worden verborgen. Met andere woorden, encapsulatie kan worden geïdentificeerd als een stap verder dan abstractie. Terwijl abstractie een object uit de echte wereld reduceert tot de essentiële bepalende kenmerken, breidt inkapseling dit idee uit door deze functionaliteit van die entiteit te modelleren en te koppelen.