Абстрактный тип данных
Материал из Википедии — свободной энциклопедии
Абстра́ктный тип да́нных (АТД) — это такой тип, который предоставляет для работы с элементами этого типа определённый набор функций, а также возможность создавать элементы этого типа при помощи специальных функций. Вся внутренняя структура такого типа спрятана от разработчика программного обеспечения — в этом и заключается суть абстракции. Абстрактный тип данных определяет набор независимых от конкретной реализации типа функций для оперирования его значениями.
В теории и практике программирования абстрактные типы данных обычно представляются в виде интерфейсов, которые скрывают соответствующие реализации типов. Программисты работают с абстрактными типами данных исключительно через их интерфейсы, поскольку реализация может в будущем измениться. Такой подход соответствует принципу инкапсуляции в объектно-ориентированном программировании. Сильной стороной этой методики является именно сокрытие реализации. Раз вовне опубликован только интерфейс доступа к значениям типа, то пока реализация этого типа поддерживает этот интерфейс, не зависимо от того как меняется сама внутри, все программы, работающие с заданным абстрактным типом данных, будут продолжать работать.
Между абстрактными типами данных и структурами данных, которые реализуют абстрактные типы, существует очень тонкое различие, которое иногда некоторые программисты уловить не могут. Например, такой абстрактный тип данных как список List(A) может быть реализован при помощи массива, линейного списка той или иной направленности и т. д. Однако над списком List(A) определён набор функций, который будет работать всегда, независимо от того, как сам список реализован.