Непрозорий тип даних
Непрозорий тип даних — тип даних у інформатиці, чия структура даних не задана в його інтерфейсі. Такий тип посилює приховування інформації, оскільки його значення можуть бути використані тільки підпрограмами, що мають доступ до відсутньої інформації.
Непрозорі типи даних часто застосовуються для реалізації абстрактних типів даних.
Типи даних, чия структура даних є видимою, називаються прозорими типами даних.
Загальновідомими прикладами непрозорих типів даних є дескриптори та ресурси операційної системи, що надаються прикладній програмі. Наприклад, POSIX Threads визначає прикладний програмний інтерфейс, що використовує непрозорі типи даних для представлення нитей виконання та примітивів синхронізації таких як м'ютекси та умовні змінні.
Непрозорий вказівник — є частковим випадком непрозорого типу даних. Це вказівник на запис чи структуру даних не описаного типу. Наприклад, стандартна бібліотека, яка є частиною специфікації мови програмування C, для вводу/виводу у файл використовує вказівник на FILE
, конкретна реалізація якого не задана.
У різних мовах програмування
Деякі мови програмування, такі як C, можуть описувати непрозорі типи даних, поля і розмір яких приховані від клієнтів. Клієнт може тільки отримати адресу для об'єкта цього типу і утворити непрозорий вказівник.
Якщо інтерфейс дозволяє визначити розмір типу, то клієнти можуть виділяти пам'ять і копіювати такі об'єкти.
У мові Java непрозорими типами можуть бути тільки непрозорі вказівники.
Деякі мови програмування дозволяють визначати частково непрозорі типи. Деякі полі можуть бути відкритими, а всі інші схованими. Це одна із основ для об'єктно-орієнтованого програмування.
Література
- Friedman, Daniel P.; Wand, Mitchell; Haynes, Christopher T. (2001). Essentials of Programming Languages (вид. 2nd). MIT Press. с. 42. ISBN 978-0-262-06217-6.