Абстракция данных


Абстра́кция в объектно-ориентированном программировании — это использование только определения характеристик объекта, без описания их конкретных/детальных реализаций. Основная идея состоит в том, чтобы представить объект обладающим набором методов и при этом не предоставлять конкретную логику этих методов. Простыми словами, абстракция отвечает на вопрос "Что?", без ответа на вопрос "Как?".

Абстракция является основой объектно-ориентированного программирования и позволяет работать с объектами, не вдаваясь в особенности их реализации.

Абстракция данных — одно из наиболее старых понятий объектно-ориентированного программирования, возникшее ещё до его появления. Абстракция данных связывает лежащий в основе тип данных с набором операций над ним (см. также абстрактный тип данных). Пользователь типа данных не имеет прямого доступа к его реализации, но может работать с данными через предоставленный набор операций. Преимущество абстракции данных в разделении операций над данными и внутреннего представления этих данных, что позволяет изменять реализацию, не затрагивая пользователей типа данных.[1]

Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы[2].