Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры II колобок.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
182.96 Кб
Скачать
  1. Види зв’язкiв мiж класами: агрегацiя. Навести приклад.

Відношення між класами типу "містить" (contain) або "складається з" називається агрегацією, або включенням. Наприклад, якщо акваріум наповнений водою і в ньому плавають рибки, то можна сказати, що акваріум агрегує в собі воду і рибок.

Таке ставлення включення, або агрегації (aggregation), зображується лінією з ромбиком на боці того класу, який виступає в якості власника, або контейнера. Необов'язкова назва відносин записується посередині лінії.

У нашому прикладі ставлення contain є двонаправленим. Об'єкт класу Aquarium містить кілька об'єктів 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 [];

public Aquarium () {

}

}

  1. Види зв’язкiв мiж класами: композицiя. Навести приклад.

Що таке композиція? Композиція (агрегування, включення) - найпростіший механізм для створення нового класу шляхом об'єднання кількох об'єктів існуючих класів в єдине ціле При агрегування між класами діє «ставлення речі» У машини є кузов, колеса і двигун У людини є голова, руки, ноги і тіло У трикутника є вершини Вкладені об'єкти зазвичай оголошуються закритими (private) всередині класу-агрегату...

Пример 1 - Треугольник class CPoint { public: CPoint(double x, double y); double GetX()const; double GetY()const; private: double m_x, m_y; }; class CTriangle { public: CTriangle(CPoint const& p1, CPoint const& p2, CPoint const& p3); CPoint GetVertex(unsigned index)const; private: CPoint m_p1, m_p2, m_p3; };

  1. Елементи дiаграми класiв.

елементи діаграми класів

Окрім класів на діаграмах класів можуть міститися і деякі інші елементи.

Інтерфейси

Інтерфейси — це абстрактні класи, тобто з них не можна напряму створювати екземпляри. У інтерфейсах можуть міститися операції, але не атрибути. Класи можуть бути нащадками інтерфейсів (за допомогою асоціації реалізації), а з цих діаграм можна потім створювати сутності.

Типи даних

Типи даних — це базові елементи, з яких типово будується мова програмування. Типовими прикладами є цілі числа і булеві значення. Вони не можуть мати зв’язків з класами, але класи можуть мати зв’язки з ними.

Переліки

Переліки є простими списками значень. Типовим прикладом є перелік днів тижня. Пункти переліків називаються літералами переліків. Подібно до типів даних, переліки не можуть мати зв’язків з класами, але класи можуть мати зв’язки з переліками.

Пакунки

Пакункам відповідають простори назв у мовах програмування. На діаграмі пакунки використовуються для позначення частин системи, у яких міститься декілька класів, може навіть сотні класів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]