Skillnaden mellan abstraktion och inkapsling
Nyckelskillnader mellan abstraktion vs inkapsling
- Abstraktion visar bara användbara data genom att tillhandahålla de mest nödvändiga detaljerna, medan Encapsulation lindar kod och data för nödvändig information.
- Abstraktion fokuserar främst på vad som ska göras, medan Encapsulation är fokuserat på hur det ska göras.
- Abstraktion döljer komplexitet genom att ge dig en mer abstrakt bild, medan Encapsulation döljer internt arbete så att du kan ändra det senare.
- Abstraktion hjälper dig att dela upp programmet i många oberoende delar, medan Encapsulation är lätt att ändra med nya krav.
- Genom att jämföra Encapsulation vs Abstraction löser Abstraction problem på designnivå medan Encapsulation löser problem på implementeringsnivå.
- Abstraktion döljer de irrelevanta detaljerna som finns i koden, medan Encapsulation hjälper utvecklare att enkelt organisera hela koden.

Definition av abstraktion
Abstraktion är ett OOP-koncept som endast fokuserar på relevant data för ett objekt. Det döljer bakgrundsdetaljerna och betonar de väsentliga datapunkterna för att minska komplexiteten och öka effektiviteten. Den behåller i allmänhet endast information som är mest relevant för den specifika processen. Abstraktion Metoden fokuserar främst på idén istället för att fungera.
Definition av inkapsling
Inkapsling är en metod för att göra ett komplext system lättare att hantera för slutanvändare. Användaren behöver inte oroa sig för interna detaljer och komplexitet i systemet. inkapsling är en process för att linda in data och kod som fungerar på data till en enda enhet. Du kan anta att det är ett skyddande omslag som stoppar slumpmässig åtkomst av kod definierad utanför det omslaget.
Skillnaden mellan abstraktion och inkapsling
Här är huvudskillnaden mellan abstraktion vs inkapsling:
Parameter | Abstraktion | inkapsling |
---|---|---|
Använda för | Abstraktion löser problemet och frågor som uppstår i designstadiet. | Inkapsling löser det problem och problem som uppstår vid implementeringsstadiet. |
Fokus | Abstraktion låter dig fokusera på vad objektet gör istället för hur det gör det | Encapsulation gör att du kan gömma koden och data i en enda enhet för att säkra data från omvärlden. |
Genomförande | Du kan använda abstraktion med gränssnitt och abstrakt klass. | Du kan implementera inkapsling med hjälp av åtkomstmodifierare (Public, Protected & Private.) |
fokuserar | Fokusera främst på vad som bör göras. | Fokusera i första hand på hur det ska göras. |
Ansökan | På designnivå. | Under implementeringsnivån. |
Varför behöver du abstraktion?
Här är de främsta anledningarna till varför abstraktion behövs för objektorienterad programmering:
- Hjälper dig att förenkla representationen av domänmodellerna.
- Abstraktion döljer de irrelevanta detaljerna som finns i koden.
- Abstraktion hjälper dig att dela upp programmet i många oberoende koncept.
- Erbjuder den största flexibiliteten vid användning av ADT(Abstract Data Type)-objekt i olika situationer
Varför behöver du inkapsling?
De främsta fördelarna med inkapsling är
- Det förbättrar underhållsbarheten för en applikation.
- Ger flexibilitet för användaren att använda systemet mycket enkelt
- Hjälper utvecklarna att organisera koden bättre
- Gör den övergripande kodningsprocessen enklare, eftersom du bara bryr dig om vad en annan klass gör, inte hur den gör det
- Denna metod hjälper utvecklarna att bli mer "objektiva" och resultatorienterade.
- Encapsulated Code är ganska flexibel och lätt att ändra med nya krav.
- Inkapsling gör det enkelt att testa enheter.
- Det låter dig minska kopplingen av moduler och ökar kohesionen inuti en modul eftersom alla delar av en sak är inkapslade på ett ställe.
- Encapsulation hjälper dig att ändra en del av koden utan att påverka andra delar av koden.
- Förbättrar kodläsbarheten för applikationen
- Förbättrad säkerhet och gör underhållet av applikationen enklare
- Inkapslingsgränssnittet tillåter endast väldefinierad interaktion.
Exempel på abstraktion
Anta att du vill skapa en bankapplikation och att du blir ombedd att samla in all information om din kund. Det finns chanser att du kommer med följande information om kunden.
Men inte all ovanstående information krävs för att skapa en bankapplikation.
Så du behöver bara välja användbar information för din bankapplikation från den poolen. Data som namn, adress, skatteinformation etc. är meningsfulla för en bankapplikation.
Eftersom vi har hämtat/ tagit bort/valt ut kundinformationen från en större pool kallas processen för abstraktion.
Men samma information när den väl har extraherats kan användas för ett brett spektrum av tillämpningar. Till exempel kan du använda samma data för sjukhusansökan, jobbportalansökan, en statlig databas, etc. med liten eller ingen modifiering. Därför blir det din masterdata. Detta är en fördel med abstraktion.
Exempel på inkapsling
Låt oss ta ett exempel på mobil enhet. Med hjälp av mobila enheter kan du utföra olika funktioner som att ta en bild, skicka ett meddelande, spela in video/ljud, komma åt webben och mycket mer.
De funktioner som nämns ovan är funktionerna i de flesta av smartphones. Du behöver dock inte förstå de interna funktionerna för dessa funktioner innan du använder det här programmet. Exempelvis behöver du inte veta hur din kamera beräknar gammakorrigering eller identifierar ett mänskligt ansikte i en bild. Du behöver bara lära dig mjukvarugränssnittet. Detta är inkapsling.