Forskel mellem indkapsling og abstraktion

Anonim

Indkapsling vs Abstraktion

Indkapsling og abstraktion er to forskellige men relaterede begreber fundet i OOP (Object Oriented Programming) -sprog. 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 i modsætning til, hvordan den implementeres.

Hvad er indkapsling?

Indkapsling er processen med indpakning af data og drift, som opererer på dem ind i en enkelt enhed. Dette betyder i det væsentlige, at visse foruddefinerede metoder skal anvendes 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 kun eller indstiller dataværdierne gennem de metoder, der er offentligt tilgængelige for brugerne. Disse metoder giver normalt data validering, så kun dataene i det relevante format må indsættes i felterne. Derfor er fordelene ved indkapsling tre gange. Gennem indkapsling kan programmøren lave felter i en klasse skrivebeskyttet eller skrive kun. For det andet kan en klasse have total kontrol over, hvad der er gemt i sine felter. Endelig behøver brugerne af en klasse ikke at bekymre sig om, hvordan dataene gemmes. 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 er gjort, så udvikleren er lettet over de mere komplekse implementeringsdetaljer. I stedet kan programmøren fokusere på præsentationen eller adfærdsmæssige detaljer af entiteten. Simpelthen fokuserer abstraktion på, hvordan en bestemt enhed kan bruges i stedet for, hvordan den implementeres. Abstraktion fjerner i det væsentlige implementeringsdetaljerne, så selvom implementeringsmetoden ændrer sig over tid, ville programmereren ikke behøver at bekymre sig om, hvordan det ville påvirke sit program. Et system kan abstraheres i flere lag eller niveauer. For eksempel vil lavniveau abstraktion lag afsløre hardware detaljer, mens høj plan abstraktion kun vil afsløre virksomhedens 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 udtrækning ekstraktion af væsentlige detaljer, mens man ignorerer de inessible detaljer af et element eller en gruppe af elementer, mens som en enhed betyder abstraktion en model eller en visning af 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 den afgørende definerende karakterisering af en reel verden enhed.

Hvad er forskellen mellem indkapsling og abstraktion?

Selv om indkapsling og abstraktion er stærkt beslægtede begreber fundet 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 teknikker til emballering af oplysningerne, så det 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. Mens abstraktion reducerer et reelt verdensobjekt til dets væsentlige definerende egenskaber, udvider indkapslingen denne ide ved at modellere og forbinde denne funktionalitet af denne enhed.