Книга: Основы объектно-ориентированного программирования
Семантическая перегрузка (предварительное представление)
Семантическая перегрузка (предварительное представление)
Описанную форму перегрузки подпрограмм можно назвать синтаксической перегрузкой. В ОО-подходе будет предложена намного более интересная методика, динамическое связывание, отвечающая целям Независимости Представлений. Динамическое связывание можно назвать семантической перегрузкой. При использовании этой методики и соответствующим образом подобранном синтаксисе можно записать некоторый эквивалент has (t, x) как запрос на выполнение.
Смысл такого запроса примерно таков:
В отличие от синтаксической перегрузки, такая семантическая перегрузка является прямым ответом на требование Независимости Представлений. Все еще остается подозрение о нарушении принципа честности (non-deception), и ответом будет использование утверждений (assertions), задающих общую семантику подпрограммы, имеющей много различных вариантов (например, общие свойства, характеризующие has при всевозможных реализациях таблицы).
Поскольку для надлежащей работы механизма семантической перегрузки требуется использование всего ОО-аппарата, в частности - наследования, то понятно, что синтаксическая перегрузка является лишь полумерой. В ОО-языке наличие синтаксической перегрузки наряду с динамическим связыванием может лишь приводить к путанице, как это происходит в языках C++ и Java, которые позволяют классу использовать несколько процедур с одним и тем же именем, возлагая разрешение неоднозначности вызовов на компилятор и человека, читающего текст программы.
- Перегрузка методов с несколькими параметрами типа
- 4.2. Формализованное представление угроз ИБ от персонала
- Перегрузка конструкторов
- 5 Текстовое представление данных: ясные протоколы лежат в основе хорошей практики
- Представление дискуссионной группы по управлению проектами
- ГЛАВА 4. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ
- Представление метаданных компоновочного блока
- 9.5.1. Представление графов
- 2.3. Представление чисел в компьютере
- ОО-разработка и перегрузка
- 4.2. Представление базовой структуры программы
- Наглядное представление неочевидных вещей