Хелпикс

Главная

Контакты

Случайная статья





Абстрактные типы данных.



18. Абстрактные типы данных.

 

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

 

Когда мы выполняли подсчет в CF Pascal без использования естественного для подсчета типа данных INTEGR, мы создали модуль, содержащий набор символьных переменных и процедуры для и процедуры для использования модуля для подсчета. Все неуклюжие обстоятельства использования символов для подсчета были скрыты внутри модуля, так что пользователи модуля могли игнорировать их. Когда мы познакомились с типом INTEGER, модуль счетчика стал не нужен. Но с точки зрения использования разница небольшая: операции подсчета по существу те же самые что и при использовании модуля. В этом смысле INTEGER не является необходимой возможностью Паскаля. Ограничения размера в модуле счетчика присущи также и типу INTEGER, как было обнаружено в главе 14, так как они присущи машинным вычислениям.

Ситуация со счетчиком и типом INTEGER не типична для Паскаля или другого языка. Сложные объекты данных необходимые для решения сложных задач обычно не появляются магическим образом в следующей главе. Программисты должны конструировать объекты, в которых они нуждаются, но скрывая их в модулях могут сделать их настолько легкими в использовании, как будто бы они были встроенными. Возможности Паскаля, которые не были доступны в главе 13, делают создание модуле более легким и мощным:

  1. Объявление типов TYPE может быть использовано для объявления объектов внутри модуля, для скрытия их деталей реализации за идентификатором типа.
  2. Тип RECORD может быть использован для связывания нескольких объектов в новый составной тип представляющий абстрактный объект.

Модуль держит детали конструирования типа в секрете, экспортируя только имена. Пользователи модуля могут объявлять объекты этого типа, но не обязаны знать, как они сконструированы. Правило конструирования модуля таково, что для типа, который скрыт, идентификатор типа доступен извне, но детали объявления типа не доступны.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.