15
Для задач использовались преимущественно простые предметные области,
поскольку разобраться с новым материалом на понятном примере легче.
Задачи на агрегирование (наследование) отмечены тегом «лёгкие», с
них
рекомендуется начинать знакомство студентов с UML и построением диаграмм классов.
Пример задач на агрегирование.
Требуется выделить необходимые сущности и связи между ними и нарисовать
диаграммы классов для следующих ситуаций:
1. Банк состоит из различных филиалов, а также головного офиса.
2.
Университет состоит из разных факультетов.
На рис. 8, 9 представлены решения для этих задач.
Рис. 8. Решение задачи на агрегирование №1
Рис. 9. Решение задачи на агрегирование №2
Задачи на иерархию агрегирования (наследования) являются усложнением
предыдущих задач (на агрегирование и наследование соответственно).
Подавляющее
большинство тех, кто начинает работать с UML,
сталкивается с
проблемой понимания разницы между наследованием и агрегированием. Эти два вида
связи действительно имеют много общего: оба позволяют
строить древообразную
иерархию классов, изображения обоих отношений чем-то похожи визуально, предок, как
16
и агрегируемый класс, добавляет функциональность в потомок/агрегат. Однако это всё же
два разных отношения, отличия между которыми упоминались в разделе 2.1.
Для того,
чтобы студенты смогли лучше это понять, в практикум включены
задачи на совместное
использование агрегирования и наследования, наглядно
демонстрирующие разницу
между ними.
Достарыңызбен бөлісу: