Відношення узагальнення - 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 зображується зафарбованим
ромбом з боку цілого.