Skillnaden mellan abstraktion kontra inkapsling

Abstraktion vs Encapsulation, de båda är de grundläggande objektorienterade programmeringskoncepten (OOP) som gör att verkliga objekt kan implementeras i kod och program. De är mycket olika eftersom de båda går hand i hand. Även om de båda är tekniskt oskiljaktiga har de ingenting gemensamt bokstavligen. Nästan all kapsling är en abstraktion eftersom de båda maskerar något men har en rättvis andel skillnader.

Vad är abstraktion?

Abstraktion är ett grundläggande OOP-koncept som endast fokuserar på relevanta data för ett objekt och täcker alla irrelevanta detaljer som kan eller inte kan användas för generiskt eller specialiserat beteende. Det maskerar bakgrundsdetaljer och belyser de väsentliga elementen för att minska komplexiteten och förbättra effektiviteten. Det hjälper till att förenkla domänmodellrepresentationen. Abstraktion handlar mer om idéer än om händelser. Det täcker detaljerna på designnivå genom att erbjuda användarna funktionalitet. En abstraktion kan också kallas det resulterande objektet.

Låt oss ta ett exempel

Så låt oss ta hänsyn till motorcykeln En mekaniker försöker reparera din motorcykel eller säga en viss del av din motorcykel Du är användaren och du vill inte veta dina motorcykelspecifikationer eller vilken del som faktiskt har gått sönder. Du bryr dig inte; du vill helt enkelt ha din motorcykel i sitt ursprungliga skick utan att oroa dig för detaljerna. Du berättade för mekanikern vad du ville genom att separera implementeringsdelen som det kallas abstraktion. Det viktigaste du gjorde var att fixa din motorcykel istället för att fokusera på informationen.

Vad är inkapsling?

Ett annat koncept av OOP-kapsling binder data och funktionaliteter till en komponent medan begränsningen av åtkomsten till vissa komponenter har fastställts. Inkapsling kommer att förbättra din applikations underhållbarhet. Detta ger användaren mycket flexibilitet i att använda systemet. Det underlättar hela kodningsprocessen, eftersom du bara är intresserad av vad en annan klass inte gör. Detta är ett av de viktigaste grundläggande koncepten för OOP, som förpackar data och data i en enhet. Det ger uppgifterna grundläggande integritet genom att försvara dem från omvärlden. Det döljer ytterligare information från omvärlden på enkla villkor.

Låt oss ta ett exempel

Endast du behöver känna till enhetens beteende utan att behöva oroa dig för att implementera detaljer som vilka sensorer tangentbordet har och om det är trådlöst eller inte etc. Varje detalj beskriver musen, men det är helt enkelt ett tangentbord oavsett detalj. Du har bara ett tangentbordgränssnitt, som är muspekaren i den här situationen och det vi kallade Encapsulation

Jämförelse mellan huvud och huvud mellan abstraktion vs inkapsling (infographics)

Nedan visas topp 6-skillnaden mellan Abstraktion vs Encapsulation

Viktiga skillnader mellan abstraktion kontra inkapsling

Låt oss diskutera några av de största skillnaderna mellan Abstraktion och Encapsulation:

Den huvudsakliga skillnaden mellan abstraktion kontra inkapsling är att problemet löses genom abstraktion på designnivå och applikationsnivå genom inkapsling. Abstraktion innebär att dölja oönskad information samtidigt som den viktigaste informationen tillhandahålls, medan kapsling innebär att dölja kod och information i en enhet.

Abstraktion gör att du kan fokusera på vad objektet gör istället för hur det gör, medan kapsling innebär de inre detaljerna om hur objektet fungerar. Du kan ändra den senare med en bättre teknik om du håller den inre informationen konfidentiell. Abstraktion fokuserar på utsidan, till exempel att växla bilen medan Encapsulation fokuserar på internt arbete eller inre betraktning.

Abstraktion stöds i Java med gränssnittet och den abstrakta klassen, och Encapsulation stöds med t.ex. offentliga, privata och säkra åtkomstmodifieringssystem. Detta är separationen i Java och OOP mellan inkapsling och abstraktion. Kom ihåg att abstraktion löser problemet i designnivå och kapsling i exekveringsnivå. Både för en OOP-programmerare är mycket viktiga, men det kan ibland vara svårt att förklara. Som jag sa tidigare är att skriva kod och läsa kod för andra ett av de bästa sätten att lära sig och behärska objektorienterad programmering.

Abstraktion döljer implementeringen med hjälp av gränssnitt och abstrakt klass medan Encapsulation döljer informationen med hjälp av getters och seters.

Jämförelsetabell över abstraktion kontra inkapsling

Nedan är den bästa jämförelsen mellan Abstraktion vs Encapsulation:

Abstraktion

inkapsling

Abstraktion fungerar på designnivåInkapsling fungerar på applikationsnivå
Abstraktion genomförs för att dölja onödiga data och dra tillbaka relevant data.Inkapsling är mekanismen för att dölja koden och data tillsammans från omvärlden eller missbruk.
Den belyser vad som är ett objekts arbete istället för hur objektet fungerarDet fokuserar på de inre detaljerna om hur objektet fungerar. Ändringar kan göras senare till inställningarna.
Abstraktion fokuserar på utsikten utanför, till exempel att växla bilen.Inkapsling fokuserar på internt arbete eller inre visning, till exempel produktionen av bilen.
Abstraktion stöds i Java med gränssnittet och den abstrakta klassenInkapsling stöds med t.ex. offentliga, privata och säkra åtkomstmodifieringssystem.
I ett nötskal döljer abstraktion implementering med hjälp av ett gränssnitt och en abstrakt klass.I ett nötskal döljer inkapslingen informationen med hjälp av getters och seters.

Slutsats

I den här artikeln har vi sett vad som är Abstraktion kontra Encapsulation och skillnaden mellan dem. Även om båda är Data Hiding OOP-idéer, skiljer de sig helt från varandra. Det maskerar bakgrundsinformationen och belyser de kritiska informationspunkterna för att minska komplexiteten och förbättra effektiviteten. Med nya krav är den inkapslade koden mycket flexibel och lätt att ändra.

Rekommenderade artiklar

Detta har varit en guide till den högsta skillnaden mellan Abstraktion vs Encapsulation. Här diskuterar vi också Abstraction vs Encapsulation viktiga skillnader med infographics och jämförelse tabell. Du kan också titta på följande artiklar för att lära dig mer -

  1. Vad är C ++
  2. CSS vs JavaScript
  3. C vs Python
  4. Guide till inkapsling i PHP

Kategori: