Ада-95. Компилятор GNAT



         

Рекомендации по построению абстракций


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

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

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

В большинстве подобных случаев, главный тип описан как приватный тип или тип, имеющий приватное расширение.

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

Эти типы, как правило, используются для построения интерфейса (когда они описаны публично), или для представления внутренних структур данных (когда они описаны приватно).

Простой демонстрацией подобного подхода построения абстракции может служить следующий схематический пример:

with Angle; package Coordinates is

type Object is ... -- главный тип абстракции -- (приватный или с приватным расширением)

type Geographic is -- обычный тип (описан публично) record

Latitude : Angle.Radian; Longitude : Angle.Radian; end record;

private

. . .

end Coordinates;

Подобный подход является базисом.

При этом, программисту предоставляется широкий выбор: должен-ли он использовать тэговые типы? контролируемые типы? ...




Содержание  Назад  Вперед