Indkapsling vs abstraktion
Indkapsling og abstraktion er to forskellige, men relaterede begreber, der findes på OOP-sprog (Object Oriented Programming). Indkapsling er begrebet 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?
Indkapsling er processen med indpakning af data og drift, der fungerer på dem til en enkelt enhed. Dette betyder i det væsentlige, 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 dataintegriteten bevares, fordi brugeren ikke er i stand til direkte at få adgang til og ændre dataene, som han / hun ønsker. Brugerne modtager eller indstiller kun dataværdierne via de metoder, der er offentligt tilgængelige for brugerne. Disse metoder giver normalt datavalidering, så kun dataene i det relevante format får lov til at blive indsat i felterne. Derfor er fordelene ved indkapsling tredoblet. Gennem indkapsling kan programmøren lave felter i en klasse skrivebeskyttet eller kun skrive. For det andeten klasse kan have total kontrol over, hvad der er gemt i sine felter. Endelig behøver brugerne af en klasse ikke bekymre sig om, hvordan dens data lagres. I Java kan programmøren erklære alle instansvariabler for at være private og give get and set-metoder (som er offentlige) for at få adgang til og ændre de private felter.
Hvad er abstraktion?
Abstraktion er processen med at adskille præsentationsdetaljerne fra implementeringsoplysningerne. Dette gøres, så udvikleren fritages for de mere komplekse implementeringsoplysninger. I stedet kan programmøren fokusere på præsentationen eller adfærdsmæssige detaljer for enheden. Enkelt sagt fokuserer abstraktion på, hvordan en bestemt enhed kan bruges snarere end hvordan den implementeres. Abstraktion skjuler i det væsentlige detaljerne i implementeringen, så selvom implementeringsmetoden ændres over tid, behøver programmør ikke at være bange for, hvordan det vil påvirke hans program. Et system kan abstraheres i flere lag eller niveauer. For eksempel vil abstraktionslag på lavt niveau afsløre hardwareoplysninger, mens abstraktion på højt niveau kun afslører 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 ting, 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, der repræsenterer de væsentlige definerende karakteristika for en virkelighedens enhed.programmøren kan bruge nøgleordet abstrakt til at erklære en klasse som en abstrakt enhed, der repræsenterer de væsentlige definerende karakteristika for en virkelig verdensenhed.programmøren kan bruge nøgleordet abstrakt til at erklære en klasse som en abstrakt enhed, der repræsenterer de væsentlige definerende karakteristika for en virkelig verdensenhed.
Hvad er forskellen mellem indkapsling og abstraktion?
Selvom indkapsling og abstraktion er meget beslægtede begreber, der findes i objektorienterede programmeringssprog, har de nøgleforskelle. Abstraktion er en teknik, der hjælper os med at identificere, hvad der skal være synligt, og hvad der skal skjules. Indkapsling er teknikkerne til emballering af informationen, så den synliggør det, 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 karakteristika, udvider indkapsling denne idé ved at modellere og forbinde denne enheds funktionalitet.