Hvad er en abstrakt datatype?
I computerprogrammering er der mange typer variabler, funktioner og datatyper. En abstrakt datatype er en variabel, der kan ændres baseret på betingelser i programmet. Dette er en objektorienteret programmeringsmodel, der muliggør genbrug af kode ved at oprette et abstraktionslag. Denne datatype bruges ofte i programmeringssprog C ++ og Java® og betragtes som en avanceret udviklingsteknik.
En abstrakt datatype betragtes som den laveste fællesnævnedefinition af et specifikt sæt eller datastruktur. Denne datatype skal omfatte grundlæggende operationer for at muliggøre ændring af dataværdier inden for denne struktur. Datatypen kan bruges af lignende datatyper gennem arv, hvilket gør operationerne udvidelige for efterkommere.
Et eksempel, der ofte bruges til at beskrive abstrakte datatyper, er liste- og køobjekter. Dette er objekter, der opretholder information på en lineær måde, der ligner et regneark med data. Både en liste og et køobjekt administrerer datasæt og bruger funktioner til at manipulere disse data. Ved at oprette en abstrakt datatype til at administrere datasæt, kan både listen og køobjektet bruge de samme sorteringsfunktioner.
Abstraktion refererer til ideer, der er virtuelle eller ufuldstændige. En abstrakt datatype er en type data, der er en skeletform af en faktisk datastruktur. Det er designet som et skelet til at muliggøre genbrug af funktioner baseret på programmets specifikke behov.
En abstrakt datatype kan ikke bruges uden først at tildele den til en konkret datatype. Dette er en forløber-skeletdatadruktur, der skal konverteres til en reel datatype, når den oprettes. Skelettet bruges derefter ved at få adgang til de funktioner, der er tilgængelige i den arvede konkrete implementering. Den abstrakte klasse definerer grænseflader og funktioner, der kan bruges af efterkommerklasser.
At have abstraktion inden for software gør programmet mere fleksibelt til fremtidige ændringer. Dette abstraktionslag giver et område, hvor generiske funktioner kan oprettes og bruges i hele applikationen. Java®-programmeringssprog opnår dette gennem grænseflader og funktionelle metoder i det abstrakte lag.
Den abstrakte datatype kan også bruges til implementering af objektdatabaser. Dette er et hierarkalt databasedesign, der er baseret på objekter og forældre-barn-forhold. Inden for objektdatabaseprincipper og abstrakte datatype kan antage flere former. Dette gør det muligt at lagre flere typer data i databasestrukturen.