16.2 расширение типаОсновная идея программирования, основанного на расширении -возможность обьявления нового типа, который, используя существующий родительский тип, наследует, модифицирует и добавляет к его компонентам и операциям новые компоненты и операции. Такой подход сокращает время разработки программы, так как не требует перекомпиляции существующей системы. Расширения типа ( type extensions ) в Аде 95 основывается на существующей в Аде 83 концепции производных типов: новый тип может быть получен из существующего ( родительского ) как производный тип. Производный тип наследует операции родительского типа и мы могли добавлять новые операции . Однако в Аде 83 не разрешалось добавлять новые компоненты к производному типу, то есть механизм был статическим. В Аде 95 производный тип может быть расширен новыми компонентами, если он помечен как тэговый. Общий вид расширения типа: TYPE Имя IS [ABSTRACT] NEW Имя_Родителъского_Типа WITH ( Запись PRIVATE ) ; Здесь Имя - расширенный тип, Имя_Родительского_Типа - тэговый тип. 26* 200 201 Ада 95. Введение в программирование Глава 16. Обьектно-ориентированное программирование
Производный от тэгового тип называется раширенным типом ( type extended ). Каждое расширение типа порождает в свою очередь тэговый тип и может служить основой для последующего расширения. П Пример расширения типов: type Place is new Plan with null record; - - без добавления компонент type Res_Data is access all Data'Class; type Ex_Plan is new Plan with record Z: fixed: end record; type Elements is new Data with record V : Vector; M : Matrix; N : integer; end record; package RAM is type Tend is new Control with private private type Tend is new Control with record Z : Matrix ; - - новые компоненты end record; end RAM; СОВЕТЫ: * Определяйте расширение тэговых типов в дочерних пакетах. |
| Оглавление| |