416 Глава 18. Уточнение отношений, выявленных при анализе
• принимается решение о том, какая сторона отношения явля
ется целым, а какая – частью:
• рассматривается кратность со стороны целого:
• если она равна 1, вероятно, можно использовать компози
цию – если ассоциация имеет семантику композиции,
должна применяться композиция;
• если она не равна 1, должна использоваться агрегация;
• вводится возможность навигации от целого к части.
• Типы ассоциаций.
• Ассоциация одинкодному – почти всегда становится компози
цией. Однако она может быть заменена на атрибут или два клас
са, которые она связывает, могут быть объединены в один.
• Ассоциация многиекодному:
• используется агрегация; композиция не может использовать
ся, поскольку кратность целого – «многие»;
• проводится проверка на наличие циклов в схеме агрегации.
• Ассоциация одинкомногим:
• здесь на стороне части находится коллекция объектов;
• используется встроенный массив (большинство ОО языков
программирования поддерживают массивы напрямую); обыч
но они обладают плохой гибкостью, но довольно быстрые;
• используется классколлекция; они характеризуются боль
шей гибкостью, чем встроенные массивы, и поиск по коллек
ции осуществляется быстрее (в других случаях они медлен
нее массивов).
• Коллекции.
• Это специализированные классы, экземпляры которых могут
управлять коллекциями других объектов.
• Все классыколлекции имеют операции для:
• добавления объектов в коллекцию;
• удаления объектов из коллекции;
• получения ссылки на объект коллекции;
• обхода коллекции – прохода по коллекции от первого объ
екта до последнего.
• Моделирование с использованием коллекций – существует че
тыре варианта:
• классколлекция моделируется явно;
• путем введения свойства в отношение, например {Vector}, ин
струменту моделирования сообщается, какую коллекцию ис
пользовать;