Indkapsling vs abstraktion
Indkapsling og abstraktion er to forskellige, men beslægtede begreber findes på OOP (Object Oriented Programming) sprog. Indkapsling er begrebet at kombinere data og adfærd sammen som en 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 operation, der fungerer på dem til en enkelt enhed. Dette betyder i det væsentlige, at for at få adgang til data, skal visse foruddefinerede metoder bruges. 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 adgang til og ændring af dataene, som han / hun ønsker. Brugerne får eller indstiller dataværdierne kun ved hjælp af de metoder, der er offentligt tilgængelige for brugerne. Disse metoder tilvejebringer normalt datavalidering, så det kun er tilladt at indsætte dataene i det passende format i felterne. Derfor er fordelene ved indkapsling tredobbelt. Gennem indkapsling kan programmereren lave felter i en klasse skrivebeskyttet eller kun skrive. For det andet kan en klasse have total kontrol over, hvad der er gemt i dets felter. Endelig behøver brugere af en klasse ikke at bekymre sig om, hvordan dens data gemmes. I Java kan programmereren erklære, at alle forekomstvariabler er private og giver get og sæt metoder (der er offentlige) til 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, så udvikleren er lettet for de mere komplekse implementeringsdetaljer. I stedet kan programmereren fokusere på præsentationen eller enhedens adfærdsdetaljer. Kort sagt fokuserer abstraktion på, hvordan en bestemt enhed kan bruges snarere end hvordan den implementeres. Abstraktion skjuler i det væsentlige implementeringsdetaljerne, så selv om implementeringsmetodologien ændrer sig over tid, ville programmerer ikke skulle bekymre sig om, hvordan det ville påvirke hans program. Et system kan abstraheres i flere lag eller niveauer. F.eks. Afslører abstraktionslag på lavt niveau hardwaredetaljer, mens abstraktion på højt niveau kun afslører enhedens forretningslogik. Udtrykket abstraktion kan bruges til at referere til både en enhed og en proces, og dette fører til en vis forvirring. Som en proces betyder abstraktion udtrækning af væsentlige detaljer, mens man ignorerer de uundværlige detaljer om et element eller en gruppe af varer, mens abstraktion betyder en model eller en visning af en enhed med kun de væsentlige detaljer. I Java kan programmereren bruge nøgleordet abstrakt til at erklære en klasse som en abstrakt enhed, der repræsenterer de væsentligste definerende karakteristika for en reel verdensenhed.
Hvad er forskellen mellem Indkapsling og abstraktion?
Selvom Indkapsling og abstraktion er meget beslægtede begreber, der findes på objektorienterede programmeringssprog, har de centrale forskelle. 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 at pakke informationen sådan, at den synliggør hvad der skal være synligt og skjuler hvad der skal skjules. Med andre ord kan indkapsling identificeres som et trin ud over abstraktion. Selvom abstraktion reducerer et ægtefeltobjekt til dets væsentligste definerende egenskaber, udvider indkapsling denne idé ved at modellere og forbinde denne funktionalitet hos denne enhed.