Абстракции

Абстракция - это упрощенное представление реальной сущности, где учитываются только важные для данного контекста характеристики, а второстепенные игнорируются. Существуют абстракции процессов и абстракции данных.

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

Инкапсуляция

Инкапсуляция - это размещение данных и подпрограмм для их обработки в контейнере, где доступ к данным возможен только через эти подпрограммы. Другими словами, инкапсуляция обеспечивает принцип сокрытия информации.

Принцип сокрытия информации: каждый программный компонент, определяемый программистом, должен максимально скрывать от пользователей информацию о своем внутреннем устройстве.

Инкапсуляция в абстракции означает, что пользователь:

Пример инкапсуляции: представление целочисленных и вещественных типов данных в языке программирования. Программист может использовать эти типы данных, не вникая в детали их реализации и представления в памяти, потому что детали представления чисел скрыты, а манипулировать отдельными битами невозможно.

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

Абстракция данных определяет:

Пользователю достаточно знать только название типа и смысл доступных операций.

Абстрактный тип данных (АТД)

АТД — это синтаксический контейнер, который включает определение данных только одного типа и подпрограммы, которые обеспечивают операции для этого типа.

АТД, определяемый программистом, должен удовлетворять двум условиям:

  1. Представление (определение) типа и операции над объектами типа содержатся в едином синтаксическом модуле. Другие программные модули могут лишь создавать переменные этого типа.