WikiDer > Непрозрачный тип данных
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
В Информатика, непрозрачный тип данных это тип данных чей бетон структура данных не определен в интерфейс. Это заставляет скрытие информации, поскольку его значения можно манипулировать только вызовом подпрограммы которые имеют доступ к недостающей информации. Конкретное представление типа скрыто от пользователей, а видимая реализация является неполной. Тип данных, представление которого является видимым, называется прозрачный.[1] Непрозрачные типы данных часто используются для реализации абстрактные типы данных.
Типичные примеры непрозрачных типов данных включают ручки за Ресурсы предоставленный Операционная система к программное обеспечение. Например, Стандарт POSIX для потоков определяет интерфейс прикладного программирования на основе ряда непрозрачных типов, которые представляют потоки или же примитивы синхронизации подобно мьютексы или же переменные состояния.[2]
An непрозрачный указатель является частным случаем непрозрачного типа данных, типа данных, который объявлен как указатель к записывать или же структура данных некоторого неопределенного типа данных. Например, стандартная библиотека который является частью спецификации Язык программирования C предоставляет функции для файл ввод и вывод которые возвращают или принимают значения типа "указатель на ФАЙЛ
", которые представляют файловые потоки (см. Ввод / вывод файла C), но конкретная реализация типа ФАЙЛ
не указано.[3]
Используется на разных языках
Некоторые языки, например C, разрешить объявление непрозрачным записи (структуры), размер и поля которых скрыты от клиента. Единственное, что клиент может сделать с объектом такого типа, - это взять его адрес памяти, чтобы произвести непрозрачный указатель.
Если информации, предоставляемой интерфейсом, достаточно для определения размера типа, клиенты могут объявить переменные, поля, и массивы этого типа, присвойте их значения и, возможно, сравните их на равенство. Обычно так бывает с непрозрачными указателями.
На некоторых языках, например Ява, единственный предоставляемый непрозрачный тип - это непрозрачный указатель. Действительно, в Java (и некоторых других языках) записи всегда обрабатываются с помощью указателей.
Некоторые языки допускают частично непрозрачные типы, например запись, в которой есть общественный поля, известные и доступные всем клиентам, а некоторые скрытый поля, которые не отображаются в интерфейсе. Такие типы играют фундаментальную роль в объектно-ориентированного программирования.
Информация, отсутствующая в интерфейсе, может быть объявлена в его выполнение, или в другом интерфейсе, предназначенном только для друзей. Этот второй вариант позволяет двум или более модулям совместно использовать скрытую информацию.
Смотрите также
Рекомендации
- ^ Фридман, Дэниел П.; Палочка, Митчелл; Хейнс, Кристофер Т. (2001). Основы языков программирования (2-е изд.). MIT Press. п. 42. ISBN 978-0-262-06217-6.
- ^ Бутенхоф, Дэвид Р. (1997). Программирование с использованием потоков POSIX. Эддисон-Уэсли. п. 31. ISBN 978-0-201-63392-4.
- ^ Керниган, Брайан В.; Ричи, Деннис М. (1988). Язык программирования C (2-е изд.). Прентис Холл. ISBN 0-13-110362-8.
Этот Информатика статья - это заглушка. Вы можете помочь Википедии расширяя это. |