Verschil tussen abstractie versus inkapseling

Abstractie versus inkapseling, beide zijn de basis OOP-concepten (Object-Oriented Programmering) waarmee echte objecten in code en programma kunnen worden geïmplementeerd. Ze zijn heel anders omdat ze beide hand in hand gaan. Hoewel ze technisch gezien onafscheidelijk zijn, hebben ze letterlijk niets gemeen. Bijna alle inkapseling is een abstractie omdat ze beide iets maskeren maar een behoorlijk deel van de verschillen hebben.

Wat is abstractie?

Abstractie is een fundamenteel OOP-concept dat zich alleen richt op de relevante gegevens van een object en alle irrelevante details bedekt die al dan niet kunnen worden gebruikt voor generiek of gespecialiseerd gedrag. Het maskeert de achtergronddetails en markeert de essentiële elementen om de complexiteit te verminderen en de efficiëntie te verbeteren. Het helpt om de representatie van het domeinmodel te vereenvoudigen. Abstractie gaat meer over ideeën dan over gebeurtenissen. Het bedekt de details op het ontwerpniveau door gebruikers functionaliteit te bieden. Een abstractie kan ook het resulterende object worden genoemd.

Laten we een voorbeeld nemen

Dus laten we de motorfiets overwegen. Een monteur probeert uw motorfiets te repareren of een bepaald gedeelte van uw motorfiets te zeggen. U bent de gebruiker en u wilt niet weten wat uw motorfietsspecificaties zijn of welk gedeelte daadwerkelijk is gebroken. Het kan je niet schelen; u wilt gewoon uw moto-cyclus in zijn oorspronkelijke staat zonder zich zorgen te maken over de details. Je hebt de monteur verteld wat je wilde door het uitvoerende deel te scheiden. Dit wordt abstractie genoemd. Het belangrijkste dat je deed was je motor repareren in plaats van je te concentreren op de details.

Wat is inkapseling?

Een ander concept van OOP-inkapseling verbindt gegevens en functionaliteiten in één component terwijl de toegang tot bepaalde componenten is beperkt. Inkapseling verbetert de onderhoudbaarheid van uw toepassing. Dit biedt de gebruiker veel flexibiliteit bij het gebruik van het systeem. Het maakt het hele coderingsproces eenvoudiger, omdat je alleen geïnteresseerd bent in wat een andere klasse niet doet. Dit is een van de belangrijkste basisconcepten van OOP, waarbij gegevens en gegevens zijn samengevoegd tot één eenheid. Het geeft de gegevens fundamentele integriteit door het te beschermen tegen de buitenwereld. Het verbergt aanvullende informatie van de buitenwereld in eenvoudige bewoordingen.

Laten we een voorbeeld nemen

Alleen jij moet het gedrag van het apparaat kennen zonder je zorgen te hoeven maken over het implementeren van details zoals welke sensoren het toetsenbord heeft en of het draadloos is of niet enz. Elk detail beschrijft de muis, maar het is gewoon een toetsenbord, ongeacht het detail. Je hebt gewoon een toetsenbordinterface, die in deze situatie de muisaanwijzer is en die we Encapsulation hebben genoemd

Vergelijking tussen abstractie en inkapseling (infographics)

Hieronder staat het top 6 verschil tussen abstractie versus inkapseling

Belangrijkste verschillen tussen abstractie versus inkapseling

Laten we enkele van de belangrijkste verschillen tussen abstractie versus inkapseling bespreken:

Het belangrijkste verschil tussen abstractie versus inkapseling is dat het probleem wordt opgelost door abstractie op het ontwerpniveau en het niveau van de toepassing door inkapseling. Abstractie houdt in dat ongewenste informatie wordt verborgen terwijl de belangrijkste informatie wordt verstrekt, terwijl inkapseling inhoudt dat code en informatie in één apparaat worden verborgen.

Met abstractie kunt u zich concentreren op wat het item doet in plaats van hoe het werkt, terwijl inkapseling de innerlijke details van de werking van het object betekent. U kunt het later wijzigen met een betere techniek als u de innerlijke informatie vertrouwelijk houdt. Abstractie richt zich op buiten kijken, bijvoorbeeld het verschuiven van de auto terwijl Encapsulation zich richt op intern werken of binnen kijken.

Abstractie wordt ondersteund in Java met de interface en de abstracte klasse, en Encapsulation wordt ondersteund met behulp van bijvoorbeeld openbare, particuliere en beveiligde toegangsmodificatiesystemen. Dit is de scheiding tussen Java en OOP tussen inkapseling en abstractie. Bedenk dat abstractie het probleem in het ontwerpniveau en inkapseling in het uitvoeringsniveau oplost. Beide voor een OOP-programmeur zijn erg essentieel, maar het kan soms moeilijk uit te leggen zijn. Zoals ik al eerder zei, is het schrijven van code en het lezen van code van anderen een van de beste manieren om objectgericht programmeren te leren en beheersen.

Abstractie verbergt implementatie met behulp van interface en abstracte klasse, terwijl Encapsulation de gegevens verbergt met behulp van getters en setters.

Vergelijkingstabel van abstractie versus inkapseling

Hieronder is de bovenste vergelijking tussen abstractie versus inkapseling:

Abstractie

inkapseling

Abstractie werkt op het ontwerpniveauInkapseling werkt op applicatieniveau
Abstractie wordt geïmplementeerd om onnodige gegevens te verbergen en relevante gegevens in te trekken.Inkapseling is het mechanisme om de code en de gegevens samen voor de buitenwereld te verbergen of te misbruiken.
Het benadrukt wat het werk van een object is in plaats van hoe het object werktHet richt zich op de innerlijke details van hoe het object werkt. Wijzigingen kunnen later in de instellingen worden aangebracht.
Abstractie richt zich op buiten kijken, bijvoorbeeld het verschuiven van de auto.Inkapseling richt zich op intern werken of innerlijk kijken, bijvoorbeeld de productie van de auto.
Abstractie wordt ondersteund in Java met de interface en de abstracte klasseInkapseling wordt ondersteund met behulp van bijvoorbeeld openbare, particuliere en beveiligde toegangsmodificatiesystemen.
Kort gezegd verbergt abstractie de implementatie met behulp van een interface en een abstracte klasse.Kort gezegd verbergt inkapseling de gegevens met behulp van getters en setters.

Conclusie

In dit artikel hebben we gezien wat abstractie versus inkapseling is en het verschil daartussen. Hoewel beide Data Hiding OOP-ideeën zijn, onderscheiden ze zich behoorlijk van elkaar. Het maskeert de achtergrondinformatie en markeert de kritieke informatiepunten om de complexiteit te verminderen en de effectiviteit te verbeteren. Met nieuwe vereisten is de ingekapselde code zeer flexibel en gemakkelijk te wijzigen.

Aanbevolen artikelen

Dit is een leidraad geweest voor het grootste verschil tussen abstractie versus inkapseling. Hier bespreken we ook de belangrijkste verschillen tussen abstractie en inkapseling met infographics en vergelijkingstabel. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Wat is C ++
  2. CSS versus JavaScript
  3. C tegen Python
  4. Gids voor inkapseling in PHP