Главная » Delphi » Delphi 2006 – Строим иерархию классов

0

Определим свойства, общие для всех трех классов модели. Пусть первым таким свойством станет название объекта — ElementName. Его не надо путать со свойством Name, которое в исходном тексте программы используется в качестве названия идентификатора класса. Новое свойство ElementName определяет название элемента звездной системы (например, «Солнце», «Земля», «Альфа Центавра»). Вторым общим свойством станет масса звезды или планеты в некоторых условных единицах — Mass.

Новые свойства добавляются к классу обращением к команде контекстного меню его элемента на диаграмме: Add > Attribute (Добавить > Атрибут). Вводим название нового свойства: ElementName, выделяем его и в Инспекторе объектов, в поле Туре (тип свойства) вручную введем строку "string" (символьная строка). Аналогичным способом добавим свойство Mass. Пусть его тип останется по умолчанию "integer" (целое).

Теперь диаграмма класса StarSystemElement выглядит следующим образом.

Добавим на диаграмму два новых класса: Star (Звезда) и Planet (Планета). Введем в класс Star дополнительное свойство Т: Integer (температура), а в класс Planet — свойство Orbit: Integer (орбита). Кроме того, следует выключить свойства Abstract этих классов, ведь на их основе в программе будут созданы экземпляры объектов.

Теперь необходимо указать, что классы Star и Planet являются наследниками абстрактного класса StarSystemElement. Выполним это с помощью средства Generalization/Implementation с палитры инструментов. Выбрав его, щелкнем на элементе диаграммы Star — курсор превратится в перечеркнутый кружок.

Наведем его на элемент класса StarSystemElement, свойства которого наследуются, — курсор примет вид небольшого перекрестья. Выполним здесь второй, финальный щелчок. Между двумя элементами протянется направленная связь. Аналогично установим связь и между элементами Planet и StarSystemElement.

Рис. 9.5. Связь между классами

По мере построения иерархической структуры наши действия отражаются в Просмотрщике модели. В нем фиксируется появление новых классов.

Важно периодически компилировать весь проект. Технология ЕСО использует стандартное пространство имен System.Reflection.NET для анализа структуры классов, загруженных в модель, их типов данных, полей и методов. Поэтому проект (сборка .NET) должен быть преобразован в законченный двоичный вид, чтобы его структура корректно отразилась в Просмотрщике моделей.

Сохраним и откомпилируем проект. Ошибок в нем быть не должно — описания всех классов будут сгенерированы автоматически.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии