Forskellen mellem indkapsling og abstraktion

Forskellen mellem indkapsling og abstraktion
Forskellen mellem indkapsling og abstraktion

Video: Forskellen mellem indkapsling og abstraktion

Video: Forskellen mellem indkapsling og abstraktion
Video: De-husked og normal ristet malt - hvad er forskellen (skaller vs uden skaller) 2024, Juli
Anonim

Encapsulation vs Abstraction

Encapsulation and Abstraction er to forskellige, men relaterede begreber, der findes i OOP-sprog (Object Oriented Programming). Encapsulation er konceptet med at kombinere data og adfærd sammen som en enkelt enhed. På den anden side er abstraktion processen med at præsentere, hvordan en enhed opfører sig\ser ud i modsætning til, hvordan den implementeres.

Hvad er indkapsling?

Encapsulation er processen med indpakning af data og operationer, der opererer på dem, i en enkelt enhed. Dette betyder i bund og grund, at visse foruddefinerede metoder skal bruges for at få adgang til data. Med andre ord er indkapslede data ikke direkte tilgængelige. Dette sikrer, at integriteten af data bevares, fordi brugeren ikke er i stand til direkte at få adgang til og ændre dataene, som han/hun ønsker. Brugerne får eller indstiller kun dataværdierne gennem de metoder, der er offentligt tilgængelige for brugerne. Disse metoder giver sædvanligvis datavalidering, så kun data i det passende format får lov til at blive indsat i felterne. Derfor er fordelene ved Encapsulation tredobbelte. Gennem Encapsulation kan programmøren lave felter i en klasse skrivebeskyttet eller skrivebeskyttet. For det andet kan en klasse have total kontrol over, hvad der er gemt i dens felter. Endelig behøver brugerne af en klasse ikke at bekymre sig om, hvordan dens data bliver gemt. I Java kan programmøren erklære alle instansvariabler for at være private og give get- og set-metoder (der er offentlige) for at få adgang til og ændre de private felter.

Hvad er abstraktion?

Abstraktion er processen med at adskille præsentationsdetaljerne fra implementeringsdetaljerne. Dette gøres for at udvikleren fritages for de mere komplekse implementeringsdetaljer. I stedet kan programmøren fokusere på præsentationen eller adfærdsdetaljerne for enheden. Kort sagt fokuserer abstraktion på, hvordan en bestemt enhed kan bruges i stedet for hvordan den implementeres. Abstraktion skjuler i det væsentlige implementeringsdetaljerne, så selvom implementeringsmetoden ændrer sig over tid, ville programmør ikke skulle bekymre sig om, hvordan det ville påvirke hans program. Et system kan abstraheres i flere lag eller niveauer. For eksempel vil abstraktionslag på lavt niveau afsløre hardwaredetaljer, mens abstraktion på højt niveau kun vil afsløre enhedens forretningslogik. Udtrykket abstraktion kan bruges til at henvise til både en enhed og en proces, og dette fører til en vis forvirring. Som en proces betyder abstraktion at udtrække væsentlige detaljer, mens man ignorerer de uvæsentlige detaljer i et element eller en gruppe af elementer, mens abstraktion som en enhed betyder en model eller et syn på en enhed med kun de væsentlige detaljer. I Java kan programmøren bruge nøgleordet abstrakt til at erklære en klasse som en abstrakt enhed, som repræsenterer de væsentlige definerende karakteristika for en virkelig verdensentitet.

Hvad er forskellen mellem indkapsling og abstraktion?

Selv om indkapsling og abstraktion er meget relaterede begreber, der findes i objektorienterede programmeringssprog, har de vigtige forskelle. Abstraktion er en teknik, som hjælper os med at identificere, hvad der skal være synligt, og hvad der skal skjules. Indkapsling er teknikkerne til at emballere informationen, så den synliggør, hvad der skal være synligt, og skjuler det, der skal skjules. Med andre ord kan indkapsling identificeres som et skridt ud over abstraktion. Mens abstraktion reducerer et objekt fra den virkelige verden til dets væsentlige definerende egenskaber, udvider indkapsling denne idé ved at modellere og forbinde denne enheds funktionalitet.

Anbefalede: