Verschil tussen abstractie en inkapseling Verschil tussen

Anonim

is, moet u real-world objecten implementeren in programma's en codes. Hoewel beiden hand in hand gaan, zijn ze heel verschillend van elkaar. Hoewel elke methode een inkapseling is, is het ook een abstractie. In eenvoudige bewoordingen, wanneer je verschillende dingen samenvoegt om een ​​entiteit te creëren, creëer je in feite een concept - een abstract. Hoewel beiden technisch onafscheidelijk zijn, hebben ze letterlijk niets gemeen. Het is bijna waar dat elke inkapseling een abstractie is, omdat ze allebei iets verbergen, maar ze hebben een groot aantal verschillen.

Wat is abstractie?

Abstractie is een eenvoudig OOP-concept dat zich richt op alleen de relevante gegevens van een object en alle niet-relevante details verbergt die al dan niet voor generiek of gespecialiseerd gedrag zijn. Het verbergt de achtergronddetails en benadrukt de essentiële punten om de complexiteit te verminderen en de efficiëntie te verhogen. Kortom, abstractie is een programmeerinstrument om de complexiteit te beheersen. Abstractie richt zich eerder op ideeën dan op gebeurtenissen. Het verbergt de details op het ontwerpniveau door functionaliteit aan de gebruikers te bieden. Het resulterende object kan ook een abstractie worden genoemd. De programmeur zorgt ervoor dat de genoemde entiteit alle essentiële aspecten omvat en geen van de irrelevante.

Laten we een realistisch voorbeeld van abstractie nemen. Laten we eens kijken naar het geval van een voertuig, in dit geval uw voertuig. Een monteur probeert uw auto te repareren of laten we zeggen een specifiek onderdeel van uw auto. Hier ben je de gebruiker en wil je niet ingaan op de specifieke kenmerken van je auto of welk deel daadwerkelijk is gebroken. Je geeft niet echt om die dingen; u wilt gewoon dat uw voertuig terug in zijn originele staat is zonder u zorgen te maken over de details. Dus je hebt de monteur eigenlijk verteld wat je wilt door het implementatiedeel te scheiden. Dit is abstractie. Je hebt gefocust op het meest essentiële ding, namelijk je auto laten repareren, in plaats van je te concentreren op de details.

Wat is encapsulatie?

Inkapseling is nog een ander OOP-concept dat gegevens en functies bindt in een enkele component terwijl de toegang tot sommige componenten wordt beperkt. Het is een van de belangrijkste basisbegrippen van OOP dat gegevens en informatie verpakt onder één enkele eenheid. In technische termen betekent inkapseling dat attributen worden verborgen om variabelen te beschermen tegen externe toegang, zodat wijzigingen in één deel van een toepassing de andere onderdelen niet beïnvloeden. Integendeel, door de informatie meer open te maken, riskeert u misbruik van gegevens. Het biedt basisintegriteit voor de gegevens door het te beschermen tegen de buitenwereld. In eenvoudige termen verbergt het de extra details van de buitenwereld.

Laten we een voorbeeld van een Bluetooth-muis nemen.U hoeft alleen het gedrag van het apparaat te kennen zonder u zorgen te maken over de implementatiedetails, zoals wat voor soort sensoren de muis heeft, draadloos of niet, enz. Elk detail beschrijft de muis, maar ongeacht de details is het slechts een muis. U hebt alleen een interface nodig om de muis te gebruiken, in dit geval de muisaanwijzer. Dit is inkapseling.

Verschil tussen abstractie en inkapseling

Hoewel beide fundamentele concepten zijn die te maken hebben met OOP en ze technisch onafscheidelijk zijn, hebben ze toch nog steeds hun verschillen in veel aspecten.

  1. Verschillen in "Definitie" van abstractie en inkapseling - Abstractie is een fundamenteel OOP-concept dat de nadruk legt op alle essentiële aspecten van een object door de irrelevante details te verbergen om de efficiëntie te vergroten en complexiteit weg te nemen. Inkapseling daarentegen is een gegevensverbergmechanisme dat de gegevens en informatie in een capsule verpakt om de toegang van buitenaf te beperken.
  2. Verschillen in "Functionaliteit" van abstractie en inkapseling - Abstractie is een mechanisme voor gegevensverberging dat alleen de essentiële functies markeert om complexe programma's eenvoudiger te maken, terwijl inkapseling daarentegen een bindmethode is gegevens en codes in een enkele entiteit. Het idee is om de implementatiegegevens te beschermen tegen externe toegang.
  3. Verschillen in 'Implementatie' van abstractie en inkapseling - Abstractie wordt geïmplementeerd met behulp van abstracte klasse en interface, terwijl inkapseling wordt geïmplementeerd met behulp van toegangsmodificatoren. Vijf soorten modifiers worden gebruikt om gegevens in te kapselen: privé, openbaar, intern, beschermd en beschermd intern.
  4. Verschillen in "Concept" van abstractie en inkapseling - Het idee achter abstractie is om je te concentreren op wat dan op hoe. Encapsulation verbergt de interne mechanica van hoe. Als u bijvoorbeeld in een auto rijdt, weet u precies wat het rempedaal doet, maar weet u misschien niet het hele mechanisme erachter omdat de gegevens zijn ingekapseld.
  5. Verschillen in "Voorbeeld" van abstractie en inkapseling - Laten we een voorbeeld van een smartphone nemen. Je weet wat het doet, maar je weet misschien niet hoe het doet wat het doet. U geeft alleen om het beeldscherm en de toetsen van het toetsenbord, in plaats van u zorgen te maken over de interne schakelingen. Hier is de smartphone een abstract waarin de details van de innerlijke implementatie zijn ingekapseld.

Abstractie versus inkapseling met de vergelijkende tabel

Abstractie Inkapseling
Het behandelt alleen de relevante details door de irrelevante te verbergen om de complexiteit te verminderen en daardoor de efficiëntie te vergroten. Het bindt de gegevens en informatie samen in één enkele entiteit om de gegevens te beschermen tegen externe bronnen.
Het verwijst naar het idee om gegevens te verbergen die niet nodig zijn voor presentatiedoeleinden. Het verbergt de gegevens en code om ongewenste toegang te beperken.
Het concentreert zich op wat eerder dan op hoe. Het verbergt de interne mechanica van hoe het iets doet.
Het verbergt de onnodige details op het ontwerpniveau. Het verbergt ook de details, maar op implementatieniveau.
Informatie en gegevens zijn gescheiden van de relevante gegevens. Informatie is verborgen in een capsule voor directe toegang.
Het gaat over ideeën in plaats van over gebeurtenissen. Het idee is om de gegevens te beschermen tegen de buitenwereld.
Het is geïmplementeerd met behulp van abstracte klasse en interface. Het is geïmplementeerd met behulp van beveiligde, private en pakket-private toegangsmodificators.

Samenvatting

Hoewel beide OOP-concepten zijn die te maken hebben met gegevensverbergen, verschillen ze nogal van elkaar. Abstractie heeft ook betrekking op verbergen zoals inkapseling, maar terwijl de eerste de complexiteit verbergt, bewaart de laatstgenoemde de gegevens die het inkapselt door de toegang ertoe te controleren. Abstractie verwijst naar het concept om alleen de noodzakelijke functies weer te geven door de irrelevante details te verbergen om de complexiteit van een toepassing te verminderen, waardoor de efficiëntie wordt verhoogd. Inkapseling daarentegen verwijst naar het concept van het verbergen van alle interne mechanica van een programma om de informatie tegen ongewenste toegang af te schermen. Het bindt de gegevens en informatie samen in één component door de toegang tot andere componenten te beperken.