Объектно-ориентированное программирование


Объектно-ориентированное программирование - стр. 133



Рис. 4.26

 

Легко видеть, что ни какая из комбинаций элементов не определяет однозначно зависимости. Следовательно, единственным возможным ключом является тройка (проект, исполнитель, язык);

(студент,профессор,университет).

 

Ограничения

 

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


Рис. 4.27. Ограничения на объекты

 

На рисунке представлены ограничения, накладываемые на объекты:

 

(а) зарплата служащего не может превышать зарплаты его начальника (ограничение на значения одного атрибута разных объектов);

 

(б) никакое окно (на экране дисплея) не может иметь отношение длины к ширине, не лежащее в интервале от 0.8 до 1.5 (ограничение на значения разных атрибутов одного объекта);

 

(в) возраст человека не может убывать (ограничение на изменение значения атрибута во времени).

 

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

 

Производные объекты, связи и атрибуты

 


Производный объект определяется как функция от одного или нескольких объектов. Он полностью определяется этими объектами. Следовательно, производный объект избыточен, но он может быть включен в объектную модель для облегчения ее понимания. Аналогичным образом можно определить производные связи и производные атрибуты. Все производные сущности помечаются косой чертой ("/").

 

Рис. 4.28. Производный атрибут

 

На рисунке показан производный атрибут возраст класса человек, возраст определяется как разность значений объекта текущая_дата (соответствующий класс также показан на рисунке) и атрибута дата_рождения объекта класса человек.




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



Книжный магазин