UML – relacje między klasami

Poniżej znajdziesz opis podstawowych relacji UML. Klasa A (Class A) jest klasą referencyjną – relacje biegną od niej w stronę klasy B (Class B).

Asocjacja -> a)

Jest to najprostszy rodzaj relacji – mówi o tym, że dwa obiekty są ze sobą, w jakiś sposób, powiązane. Na jego podstawie opisuje się, inne typy relacji. Obydwa przypadki będą prawidłowe:

class A {
    B b;
}

class B {
    A a;
}

Agregacja -> b)

Jest to asocjacja typu „mam coś” – np. Pokój ma krzesła

class Room {
    List<Chair> chairs;
}

Kompozycja -> c)

Jest to asocjacja typu „składam się z czegoś” – np. Budynek składa się z pokoi

class Building {
    Room room;
}

Dziedziczenie -> d)

Samo mówi za siebie 🙂

class Bird extends Animal { ... }

Różnica pomiędzy agregacją a kompozycją

Agregacja charakteryzuje się tym, że obiekty ze sobą powiązane mogą istnieć bez siebie (krzesła mogą istnieć bez pokoju). Zaś w przypadku kompozycji, obiekt podrzędny nie może istnieć bez obiektu nadrzędnego (pokój nie może istnieć bez budynku).