Непрозорий тип даних
?
тип даних
у
?нформатиц?
, чия
структура даних
не задана в його
?нтерфейс?
. Такий тип посилю?
приховування ?нформац??
, оск?льки його
значення
можуть бути використан? т?льки
п?дпрограмами
, що мають доступ до в?дсутньо? ?нформац??.
Непрозор? типи даних часто застосовуються для реал?зац??
абстрактних тип?в даних
.
Типи даних, чия структура даних ? видимою, називаються
прозорими типами даних
.
Загальнов?домими прикладами непрозорих тип?в даних ?
дескриптори
та
ресурси
операц?йно? системи
, що надаються
прикладн?й програм?
. Наприклад,
POSIX Threads
визнача?
прикладний програмний ?нтерфейс
, що використову? непрозор? типи даних для представлення
нитей виконання
та
прим?тив?в синхрон?зац??
таких як
м'ютекси
та
умовн? зм?нн?
.
Непрозорий вказ?вник
? ? частковим випадком непрозорого типу даних. Це
вказ?вник
на
запис
чи
структуру даних
не описаного типу. Наприклад, стандартна б?бл?отека, яка ? частиною специф?кац??
мови програмування C
, для
вводу/виводу
у файл використову? вказ?вник на
FILE
, конкретна реал?зац?я якого не задана.
Деяк? мови програмування, так? як C, можуть описувати непрозор? типи даних, поля ? розм?р яких прихован? в?д кл??нт?в. Кл??нт може т?льки отримати
адресу
для об'?кта цього типу ? утворити непрозорий вказ?вник.
Якщо ?нтерфейс дозволя? визначити розм?р типу, то кл??нти можуть вид?ляти пам'ять ? коп?ювати так? об'?кти.
У мов?
Java
непрозорими типами можуть бути т?льки непрозор? вказ?вники.
Деяк? мови програмування дозволяють визначати частково непрозор? типи. Деяк? пол? можуть бути в?дкритими, а вс? ?нш? схованими. Це одна ?з основ для
об'?ктно-ор??нтованого програмування
.