Zpo-1-wyk-Slajd29
Rodzaje relacji: kompozycja
Kompozycja jest rodzajem agregacji, w której zależność elementów od obiektu-całości jest silniejsza niż w przypadku agregacji i obejmuje niemal każdy aspekt jego istnienia.
W przedstawionym przykładzie Książka składa się z Rozdziałów, które stanowią jej nieodłączną część: nie mogą one istnieć niezależnie od Książki i są od niej zależne. Podobnie Książka pozbawiona Rozdziałów nie jest pełnoprawnym obiektem.
Różnica w stosunku do agregacji polega także na liczbie obiektów-całości, z którymi może być związany element: w przypadku kompozycji elementy należą tylko do jednej całości.
Relacja kompozycji nie ma ściśle określonej krotności: w większości przypadków wynosi ona jeden do wielu, ale zdarza się, że obiektowi-całości odpowiada tylko jeden element składowy. Wówczas relacja ta oznacza, że jest on niezbędny do istnienia całości.
W programowaniu obiektowym relacja kompozycji jest zwykle implementowana w postaci referencji inicjowanej poprzez przekazanie elementów w konstruktorze obiektu całości.