Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
В примере можно видеть роль home класса Aquarium (аквариум является домом для рыбок), а также роль inhabitants класса Fish (рыбки являются обитателями аквариума). Название роли обычно совпадает с названием соответствующего поля в классе. Изображение такого поля на диаграмме излишне, если уже указано имя роли. Т.е. в данном случае класс Aquarium будет иметь свойство (поле) inhabitants, а класс Fish - свойство home.
Число объектов, участвующих в отношении, записывается рядом с именем роли. Запись "0..п" означает "от нуля до бесконечности". Приняты также обозначения:
• "1 ..п" — от единицы до бесконечности;
• "О" - ноль;
• " 1 " — один;
• "п" — фиксированное количество;
• "0.. 1 " — ноль или один.
Код, описывающий рассмотренную модель и явление агрегации, может выглядеть, например, следующим образом:
// определение класса Fish public class Fish {
// определения поля home (ссылка на объект Aquarium)
private Aquarium home;
public Fish() { }
}
// определение класса Aquarium public class Aquarium {
// определения поля inhabitants (массив ссылок на объекты Fish) private Fish inhabitants[]; public Aquarium() { }
}
Ассоциация
Если объекты одного класса ссылаются на один или более объектов другого класса, но ни в ту, ни в другую сторону отношение между объектами не носит характера "владения", или контейнеризации, такое отношение называют ассоциацией (association). Отношение ассоциации изображается так же, как и отношение агрегации, но линия, связывающая классы,— простая, без ромбика.
Computer |
Programmer |
В качестве примера можно рассмотреть программиста и его компьютер. Между этими двумя объектами нет агрегации, но существует четкая взаимосвязь. Так, всегда можно установить, за какими компьютерами работает какой-либо программист, а также какие люди пользуются отдельно взятым компьютером. В рассмотренном примере имеет место ассоциация "многие-ко-многим".
Computerт |
0..n |
-programmers -computers
Programmerт I 0 n
В данном случае между экземплярами классов Programmer и Computer в обе стороны используется отношение "0..п", т.к. программист, в принципе, может не работать с компьютером (если он теоретик Или на пенсии). В свою очередь, компьютер может никем не использоваться (если он новый и еще не установлен).