Skillnad mellan inkapsling och abstraktion
Encapsulation vs Abstraction
Encapsulation och Abstraction är två olika men relaterade begrepp som finns i OOP-språk (Object Oriented Programming). Encapsulation är begreppet att kombinera data och beteende tillsammans som en enda enhet. Å andra sidan är Abstraction processen att presentera hur en enhet beter sig ser i motsats till hur den implementeras.
Vad är inkapsling?
Encapsulation är processen för att pakka in data och operationer som fungerar på dem i en enskild enhet. Detta innebär i huvudsak att för att få tillgång till data bör vissa fördefinierade metoder användas. Med andra ord är inkapslade data inte direkt tillgängliga. Detta säkerställer att integriteten för data bevaras eftersom användaren inte kan komma åt och ändra data som han eller hon önskar. Användarna kommer bara att få eller ställa in datavärdena genom de metoder som är tillgängliga för användarna. Dessa metoder tillhandahåller vanligtvis datavalidering så att endast data i lämpligt format får införas i fälten. Därför är fördelarna med inkapsling trefaldig. Genom inkapsling kan programmeraren göra fält i en lässkyddsklass eller skriva endast. För det andra kan en klass ha total kontroll över vad som lagras i sina fält. Slutligen behöver användarna av en klass inte oroa sig för hur data lagras. I Java kan programmeraren deklarera all instansvariabel för att vara privat 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 så att utvecklaren är lättare för de mer komplicerade implementeringsdetaljerna. Istället kan programmeraren fokusera på presentationen eller beteendeuppgifterna hos enheten. Enkelt uttryckt fokuserar abstraktionen på hur en viss enhet kan användas snarare än hur den implementeras. Abstraktion döljer väsentligen implementeringsdetaljerna, så att programmeringsprogrammet inte skulle behöva oroa sig för hur det skulle påverka sitt program, även om implementeringsmetoden ändras över tid. Ett system kan abstraheras i flera lager eller nivåer. Exempelvis kommer abstraktionsskikt med låg nivå att avslöja detaljer om hårdvaran, medan hög abstraktion endast avslöjar företagets logik. Uttrycket abstraktion kan användas för att referera till både en enhet och en process och detta leder till viss förvirring. Som en process innebär extraktion viktiga detaljer medan man ignorerar de inessiella detaljerna för ett objekt eller en grupp av objekt, medan som en enhet innebär abstraktion en modell eller en vy av en enhet med endast de väsentliga detaljerna.I Java kan programmeraren använda sökordet abstrakt för att deklarera en klass som en abstrakt enhet, som representerar den väsentliga definierande karaktäristiken av 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 vara synligt och vad som ska döljas. Inkapsling är teknikerna för att förpacka informationen så att den synliggör vad som ska vara synligt och döljer vad som ska gömmas. Med andra ord kan inkapsling identifieras som ett steg bortom abstraktion. Medan abstraktion reducerar ett verkligt världsobjekt till dess väsentliga definierande egenskaper, utvidgar inkapslingen denna idé genom modellering och koppling av denna funktionalitet hos den enheten.