Skillnaden mellan inkapsling och abstraktion

Skillnaden mellan inkapsling och abstraktion
Skillnaden mellan inkapsling och abstraktion

Video: Skillnaden mellan inkapsling och abstraktion

Video: Skillnaden mellan inkapsling och abstraktion
Video: Varm och levande eller rå och industriell. Skapa betongliknande väggar med Dalapro Design (SE) 2024, November
Anonim

Encapsulation vs Abstraction

Inkapsling och abstraktion är två olika men relaterade begrepp som finns i OOP-språk (Object Oriented Programming). Encapsulation är konceptet att kombinera data och beteende tillsammans som en enda enhet. Å andra sidan är abstraktion processen att presentera hur en enhet beter sig\ser ut i motsats till hur den implementeras.

Vad är inkapsling?

Inkapsling är processen att linda in data och operationer som fungerar på dem i en enda enhet. Detta innebär i huvudsak att vissa fördefinierade metoder bör användas för att komma åt data. Med andra ord, inkapslad data är inte direkt tillgänglig. Detta säkerställer att dataintegriteten bevaras eftersom användaren inte kan direkt komma åt och ändra data som han/hon vill. Användarna kommer att få eller ställa in datavärdena endast genom de metoder som är offentligt tillgängliga för användarna. Dessa metoder tillhandahåller vanligtvis datavalidering så att endast data i lämpligt format tillåts infogas i fälten. Därför är fördelarna med Encapsulation trefaldiga. Genom Encapsulation kan programmeraren göra fält av en klass skrivskyddade eller skrivbara. För det andra kan en klass ha total kontroll över vad som lagras i dess fält. Slutligen behöver användarna av en klass inte oroa sig för hur dess data lagras. I Java kan programmeraren deklarera alla instansvariabler som privata och tillhandahålla get- och set-metoder (som är offentliga) för att komma åt och ändra de privata fälten.

Vad är abstraktion?

Abstraktion är processen att separera presentationsdetaljerna från implementeringsdetaljerna. Detta görs för att utvecklaren ska befrias från de mer komplexa implementeringsdetaljerna. Istället kan programmeraren fokusera på presentationen eller beteendedetaljerna för enheten. Enkelt uttryckt fokuserar abstraktion på hur en viss enhet kan användas snarare än hur den implementeras. Abstraktion döljer i huvudsak implementeringsdetaljerna, så att även om implementeringsmetoden förändras över tiden, skulle programmeraren inte behöva oroa sig för hur det skulle påverka hans program. Ett system kan abstraheras i flera lager eller nivåer. Till exempel kommer lågnivåabstraktionsskikt att avslöja hårdvarudetaljer, medan högnivåabstraktion endast kommer att avslöja enhetens affärslogik. Termen abstraktion kan användas för att hänvisa till både en enhet och en process och detta leder till viss förvirring. Som en process betyder abstraktion att extrahera väsentliga detaljer samtidigt som man ignorerar de oväsentliga detaljerna i ett föremål eller en grupp av föremål, medan som en enhet betyder abstraktion en modell eller en bild av en enhet med endast de väsentliga detaljerna. I Java kan programmeraren använda nyckelordet abstrakt för att deklarera en klass som en abstrakt enhet, vilket representerar de väsentliga definierande egenskaperna hos en verklig världsenhet.

Vad är skillnaden mellan inkapsling och abstraktion?

Även om inkapsling och abstraktion är mycket relaterade begrepp som finns i objektorienterade programmeringsspråk, har de viktiga skillnader. Abstraktion är en teknik som hjälper oss att identifiera vad som ska synas och vad som ska döljas. Inkapsling är tekniken för att förpacka informationen så att den synliggör det som ska vara synligt och döljer det som ska döljas. Med andra ord kan Inkapsling identifieras som ett steg bortom abstraktion. Även om abstraktion reducerar ett objekt i den verkliga världen till dess väsentliga definierande egenskaper, utökar inkapsling denna idé genom att modellera och länka denna enhets funktionalitet.

Rekommenderad: