Глава 16. объектно - ориентированное программированиеЯзык Ада поддерживает современную практику разработки программного обеспечениия, основанную на использовании обьектно-ориентированых технологий. Ада 95 - первый язык обьектно-орентированного программирования, прошедший полную международную сертификацию. Наличие законченных средств обьектно-ориентированного программирования является отличительной чертой языка. Ада 83 поддерживала методику обьектно-ориентированного проектирования, частично ре-ализуя парадигмы обьектно-ориентированного программирования с помощью абстракции данных через приватные типы в пакетах. Ада 95 уже полностью реализует парадигмы обьектно-ориентированного программирования: • инкапсуляцию ( encapsulation) • наследование ( inheritance ) • полиморфизм ( polymorphism ); Обьектно-ориентированное программирование в языке базируется на следующих основных понятиях: • Тип - задает множество значений и множество операций; • Объект - константа или переменная, ассоциируемая с типом и имеющая структуру и состояние; • Класс - множество типов, закрытое лри порождении, то есть если данный тип является членом класса, то все типы, производные от данного типа, тоже являются членом класса ; множество типов одного класса имеют общие свойства ( например, общие примитивные операции ); • Инкапсуляция - средство, обеспечивающее группирование объектов и их операций, сокрытие деталей их реализации, а также наличие абстрактного интерфейса к ним; • Наследование - возможность определения новых абстракций на основе уже существующих с наследованием их свойств и добавлением новых;
197 Глава 16. Обьектно-ориентированное программирование • Полиморфизм - возможность умножения различий между абстракциями, при которых программа может быть написана в терминах их общих свойств: Наряду с полной поддержкой указанных понятий, в Аде 95 реализованы дополнительно средства, обеспечивающих более эффективное использование преимуществ обьектно-ориентированных технологий. Это: • Смешанное наследование ( Mixin Inheritance ) , использование которого позволяет вводить разновидности родительских абстракций, используемых только для обеспечения свойств производным от них абстракциям. • Множественное наследование ( Multiple Inheritance), при использовании которого возможно наследование компонент и операций от нескольких родительских типов. • Диспетчеризация ( Dispatching) - средство, обеспечивающее динамический выбор реализации соответствующей абстракции. Реализация этих понятий и средств в языке основана на введении дополнительных типов : тэговых, расширяемых и абстрактных. |
| Оглавление| |