581 день 👨💻 | Абстрактные типы данных (АТД)
Не писал здесь почти 2 недели. Активно изучаю ООАП.
Постепенно буду отписываться по данной теме.
Что такое абстрактный тип данных (АТД)?
Это самое базовое понятие в ООП, на основе которого следует проектировать любые объектно-ориентированные программы.
Это более высокий уровень абстракции, чем класс.
Если пройти сверху вниз по уровням абстракции, то получается следующее:
1) АТД
2) Класс
3) Объект класса
АТД - это класс, но без реализации.
АТД определяет допустимое множество объектов, а также допустимый набор методов над этими объектами. Просто задается тип данных и указываются допустимые методы без их конкретной реализации.
АТД - это абстрактный класс.
Класс - это реализация АТД.
В классе доступны поля и методы, которые прописаны в АТД. А все вспомогательные методы и поля, которые не прописаны в АТД, приватны и недоступны для внешнего мира.
———
Например, можно посмотреть АТД динамического массива по ссылке на гитхаб.
АТД DynArray и его реализация в виде уже готового класса.
Как всегда код покрыл тестами.
https://github.com/avagners/OOAP/blob/main/dyn_array/DynArray.py
Post #422
87