Відношення узагальнення - 10c15-30

Download Report

Transcript Відношення узагальнення - 10c15-30

Відношення між класами
Відношення між класами відіграють
ключову роль при моделюванні логічної
структури системи
Основні типи відношень між
класами

Відношення узагальнення (generalization
relationship)

Відношення реалізації (realization relationship)

Відношення залежності (dependency relationship)

Відношення асоціації (association relationship)
Відношення узагальнення
Узагальнення
(Generalization relationship)

Поняття узагальнення в UML
аналогічне поняттю успадкування в
мовах програмування.

“Клас-нащадок” отримує всі атрибути і
операції “батьківського” класу
Відношення узагальнення між
класами
Батьківський
клас
class Person
Empl oyee
-
job: String
Per son
-
age: int
name: String
surname: String
Teacher
-
subject: int
Наслідування
Student
Класнащадок
-
group: String
Відношення узагальнення між
класами
public class Person {
private int age;
private String name;
private String surname;
}
public class Employee extends Person {
private char[] work;
private String job;
}
public class Teacher extends Person {
private int subject;
}
public class Student extends Person {
private String group;
}
Відношення реалізації
Реалізація

Відношення реалізації (realization
relationship) – спеціальний тип
відношення узагальнення, що працює
для випадку, коли в якості базового
класу виступає інтерфейс
Відношення реалізації
Якщо інтерфейс
зображений класом,
реалізація позначається
пунктирною лінією з
трикутником в кінці.
Інтерфейс
Інтерфейс
Реалізація
Реалізація
class Person
Key
Якщо інтерфейс зображений
кружком, клас з”єднується
лінією.
+ pressKey(String) : void
IKey
Відношення реалізації
public interface IKey {
public void pressKey(String name);
}
public class Key implements IKey {
public void pressKey(String name) {
}
}
Відношення
залежності
Відношення залежності
(Dependency Relationship)

Відношення залежності виникає у випадках:
◦ Клас містить локальну змінну, що базується на
іншому класі.
◦ Клас містить посилання на об’єкт іншого класу.
◦ Клас використовує статичну операцію іншого
класу.
Асоціації
Association relationship
 Асоціація означає взаємозв”язок між
класами.
 Дає змогу об”єктам обмінюватися
данифми між собою.
 Відображається лінією.
 Може бути одно- та двонаправленою.

Однонаправлена асоціація
Позначається лінією зі стрілкою на
кінці.
 Означає, що об”єкт від якого
направлена стрілка може викликати
методи класу на який вона вказує.

Двонаправлена асоціація
Агрегація
Особливий тип асоціації, за якого
два класи не є рівнозначними.
 Зв”язок типу “частина-ціле”.
 В UML агрегації буде показано
асоціаціями, у яких з боку цілої
частини буде намальовано ромб

Композиція
Різновид агрегації.
 Зв”язок даної системи є настільки
сильним, що частини не можуть
існувати без цілого.
 Після знищення цілого буде
знищена чатина.
 В UML зображується зафарбованим
ромбом з боку цілого.
