Subtypes and Supertypes Setting the Scene


Почему наследование типов? - часть 2


Крейг Кливленд говорит, что "[наследование может] основываться на [множестве] различных критериев, и отсутствует общепринятое стандартное определение" [3], и он переходит к изложению восьми различных интерпретаций. (Бертран Мейер [Bertrand Meyer] приводит 12 интерпретаций [4].)
  • Кеннет Баклавски (Kennet Baclavski) и Бипин Индуркхиа (Bipin Indurkhia) говорят: "Язык программирования [всего лишь] обеспечивает набор механизмов [наследования]. Хотя эти механизмы ограничивают возможные действия в этом языке и то, какие представления о наследовании могут быть реализованы … они сами по себе не узаконивают то или иное представление о наследовании. Классы, специализации, обобщения и наследования - это всего лишь концепции и … они не обладают универсальным объективным смыслом … Из этого [факта] следует, что способ внедрения наследования в конкретную систему возлагается на разработчиков [этой] системы, и это является политическим решением, реализуемым на основе доступных механизмов." [5] Другими словами, просто отсутствует модель!

    Другие люди предлагают модели наследования, которые обладают противоречивыми, неинтуитивными и другими нежелательными свойствами. Например, текущие предложения SQL3 допускают такие вещи, как "неквадратные квадраты" [6] (т.е. значения типа SQUARE, стороны которого имеют разную длину) -- с тем результатом, что SQL3 трудно считать "хорошей моделью реальности". В действительности SQL3 даже не дает возможности устанавливать ограничения типа (вроде того, что у значений типа SQUARE стороны должны иметь одинаковую длину), не позволяет поддерживать их без посторонней помощи -- это, безусловно, неудовлетворительное положение дел. Что еще хуже, SQL3 не дает возможности устанавливать и поддерживать такие ограничения даже при отсутствии поддержки наследования, вероятно, при том предположении, что такая поддержка появится когда-то в будущем.

    Однако в нашей книги The Third Manifesto мы с Хью Дарвеном предлагаем модель наследования, которая, как мы полагаем, является хорошей "моделью реальности" и не страдает такими недостатками [7].Конечно, данная серия основывается на этой модели; по существу, она представляет собой легкое введение (не слишком глубокое) в наиболее важные идеи этой модели. Поэтому позвольте мне немедленно со стыдом сознаться, что одной из моих целей является реклама. Мы хотели бы, чтобы большая индустрия обратила серьезное внимание на наши идеи, потому что мы полагаем, что они могли бы служить основанием общепринятой модели, отсутствие которой так остро ощущается в настоящее время.

    Прежде, чем двигаться дальше, мне, вероятно, следует предупредить вас, что приведенные ранее в этом разделе цитаты показывают, что некоторые авторы доказывают существование многих видов наследования, которые разным образом перекрываются, но все отличны друг от друга. Конечно, можно найти в литературе определения терминов "наследование" и "подтип", но они отличаются от наших.




    Начало  Назад  Вперед