Ugjennomsiktig datatype - Opaque data type
I datavitenskap er en ugjennomsiktig datatype en datatype hvis konkrete datastruktur ikke er definert i et grensesnitt . Dette håndhever skjuling av informasjon , siden verdiene bare kan manipuleres ved å ringe til underrutiner som har tilgang til den manglende informasjonen. Den konkrete representasjonen av typen er skjult for brukerne, og den synlige implementeringen er ufullstendig. En datatype hvis fremstilling er synlig kalles transparent . Ugjennomsiktige datatyper brukes ofte til å implementere abstrakte datatyper .
Typiske eksempler på ugjennomsiktige datatyper inkluderer håndtak for ressurser som leveres av et operativsystem til applikasjonsprogramvare . For eksempel definerer POSIX-standarden for tråder et applikasjonsprogrammeringsgrensesnitt basert på en rekke ugjennomsiktige typer som representerer tråder eller synkroniseringsprimitiver som mutexes eller tilstandsvariabler .
En ugjennomsiktig peker er et spesielt tilfelle av en ugjennomsiktig datatype, en datatype som er erklært å være en peker til en post eller datastruktur av en eller annen uspesifisert datatype. For eksempel, den standard bibliotek som utgjør en del av spesifikasjonen av programmeringsspråket C inneholder funksjoner for fil inndata og utdata som retur eller ta verdier av typen "-pekeren til FILE " som representerer filen strømmene (se C fil input / output ), men konkret implementering av typen FILE er ikke spesifisert.
Bruker på forskjellige språk
Noen språk, for eksempel C , tillater erklæring av ugjennomsiktige poster (strukturer), hvis størrelse og felt er skjult for klienten. Det eneste klienten kan gjøre med et objekt av en slik type er å ta sin minneadresse , for å produsere en ugjennomsiktig peker .
Hvis informasjonen fra grensesnittet er tilstrekkelig til å bestemme størrelsen på typen, kan klienter erklære variabler , felt og matriser av den typen, tildele verdiene deres og muligens sammenligne dem for likhet. Dette er vanligvis tilfelle for ugjennomsiktige pekere.
På noen språk, for eksempel Java , er den eneste typen ugjennomsiktig type den ugjennomsiktige pekeren. Faktisk, i Java (og flere andre språk) håndteres poster alltid gjennom pekere.
Noen språk tillater delvis ugjennomsiktige typer, for eksempel en plate som har noen offentlige felt, kjent og tilgjengelig for alle klienter, og noen skjulte felt som ikke blir avslørt i grensesnittet. Slike typer spiller en grunnleggende rolle i objektorientert programmering .
Informasjonen som mangler i grensesnittet kan deklareres i implementeringen , eller i et annet "bare venner" -grensesnitt. Dette andre alternativet lar den skjulte informasjonen deles av to eller flere moduler.
Se også
- Abstrakt datatype
- Svart boks
- Gjennomsiktige identifikatorer
- Fremovererklæring
- Informasjon gjemmer seg
Referanser