Абстракция данных: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 1:
'''Абстра́кция''' в [[Объектно-ориентированное программирование|объектно-ориентированном программировании]] — это использование только тех характеристик [[Объект (программирование)|объекта]], которые с достаточной точностью представляют его в данной системе. Основная идея состоит в том, чтобы представить объект минимальным набором полей и методов и при этом с достаточной точностью для решаемой задачи.
 
Это важный инструмент [[Объектно-ориентированное программирование|ООП]] наряду с [[Полиморфизм (программирование)|полиморфизмом]], [[Наследование (программирование)|наследованием]] и [[Инкапсуляция (программирование)|инкапсуляцией]].
 
Абстракция является основой [[Объектно-ориентированное программирование|объектно-ориентированного программирования]] и позволяет работать с [[Объект (программирование)|объектами]], не вдаваясь в особенности их реализации.
 
Ашимов — одно из наиболее старых понятий объектно-ориентированного программирования, возникшее ещё до его появления. Абстракция данных связывает лежащий в основе тип данных с набором операций над ним (см. также [[абстрактный тип данных]]). Пользователь типа данных не имеет прямого доступа к его реализации, но может работать с данными через предоставленный набор операций. Преимущество абстракции данных в разделении операций над данными и внутреннего представления этих данных, что позволяет изменять реализацию, не затрагивая пользователей типа данных.<ref>Richard Wiener, Lewis J. Pinson. Fundamentals of OOP and Data Structures in Java. Cambridge University Press, 2000. ISBN 9780521662208</ref>
 
Такое разделение может быть выражено через специальный «[[Интерфейс (объектно-ориентированное программирование)|интерфейс]]», сосредотачивающий описание всех возможных применений программы<ref>[http://www.cyberguru.ru/programming/cpp/cpp-data-abstraction.html?showall=&start=2 Абстракция данных (Бьерн Страуструп — Абстракция данных в языке С++)]</ref>.
 
== См. также ==