Основы объектно-ориентированного проектирования


Сочетание универсальности и наследования


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

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

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

Давайте посмотрим, как можно решить первую проблему введением (по сути, повторным введением) подходящей формы универсальности.



Содержание раздела