Лучшие вопросы
Таймлайн
Чат
Перспективы

Абстракция (информатика)

Из Википедии, свободной энциклопедии

Remove ads

Абстракция (лат. abstractio «отвлечение»[1]) в программной инженерии и информатике — это:

  • Процесс удаления или обобщения физических, пространственных или временных деталей или характеристик[2] при изучении объектов или систем с целью сосредоточения внимания на более важных деталях;[3] он схож по своей природе с процессом обобщения;
  • Создание абстрактных понятий-объектов путем отражения общих особенностей или характеристик различных неабстрактных объектов или исследуемых систем,[3] а также результат процесса абстракции.

Абстракция вообще является основополагающим понятием в информатике и разработке программного обеспечения.[4] Процесс абстракции также можно называть моделированием, и он тесно связан с понятиями теории и дизайна.[5] Модели также можно считать видами абстракции, так как они обобщают аспекты реальности.

Абстракция в информатике тесно связана с абстракцией в математике из-за их общего акцента на создании абстракций в качестве объектов,[2] но также связана с понятиями абстракции из других областей, таких как искусство.[3]

Абстракции также могут относиться к объектам и системам реального мира, правилам вычислительных систем или правилам программирования, которые используют или реализуют особенности самой абстракции, например:

  • применение типов данных для обеспечения абстракции данных для отделения их использования от рабочих представлений структур данных в программах;[6]
  • понятие процедур, функций или подпрограмм, которые представляют собой определенный способ реализации потока управления в программах;
  • правила, обычно называемые «абстракцией», которые обобщают выражения с использованием свободных и связанных переменных в различных версиях лямбда-исчисления;[7][8]
  • использование S-выражений в качестве абстракции структур данных и программ на языке программирования Lisp;[9]
  • процесс выведения общего поведения в абстрактные классы в объектно-ориентированных языках программирования.

Абстракция может выступать как инструмент уменьшения сложности систем, так как позволяет за скрыть детали реализации за аккуратно спроектированным интерфейсом или фасадом. Например, язык запросов к базам данных SQL абстрагирует от конкретной реализации хранения данных, параллельного многопользовательского доступа, восстановления после сбоев и других деталей, заложенных в системы управления базами данных[10]


В объектно-ориентированном программировании (ООП) термин «абстракция» используется как сокращение от «абстракция данных», но не следует путать последнее с абстрактным типом данных — в ООП под этим понимается наследование классов.

Remove ads

См. также

Примечания

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads