Page 28 - 4836
P. 28
об'єктів Fish. У той же час кожна рибка "знає", в якому саме
акваріумі вона живе. Кожен клас має свою роль в агрегації,
яка вказує, яке місце займає клас у даному відношенні. Ім'я
ролі не є обов'язковим елементом позначень і може бути
відсутнім на діаграмі. У прикладі можна бачити роль home
класу Aquarium (акваріум є домом для рибок), а також роль
inhabitants класу Fish (рибки є мешканцями акваріума). Назва
ролі звичайно збігається з назвою відповідного поля в класі.
Зображення такого поля на діаграмі зайве, якщо вже вказано
ім'я ролі. Тобто в даному випадку клас Aquarium матиме
властивість (поле) inhabitants, а клас Fish - властивість home.
Кількість об'єктів, які беруть участь у відношенні,
записується поряд з ім'ям ролі. Запис "0 .. n" означає "від нуля
до нескінченності". Прийнято також позначення:
"1 .. n" - від одиниці до нескінченності;
"0" - нуль;
"1" - один;
"N" - фіксована кількість;
"0 .. 1" - нуль чи один.
Код, що описує розглянуту модель і явище агрегації,
може виглядати, наприклад, наступним чином:
// Визначення класу Fish
public class Fish {
// Визначення поля home
// (Посилання на об'єкт Aquarium)
private Aquarium home;
public Fish () {
}
}
// Визначення класу Aquarium
public class Aquarium {
// Визначення поля inhabitants
// (Масив посилань на об'єкти Fish)
private Fish inhabitants [];
26