Skip to content

Latest commit

 

History

History
63 lines (43 loc) · 2.32 KB

02-composition-vs-aggregation.md

File metadata and controls

63 lines (43 loc) · 2.32 KB

Programowanie obiektowe

Kompozycja vs agregacja

Coders School

Relacja zawierania

Nic nie stoi na przeszkodzie, by jeden obiekt składał się z innych obiektów. W ten sposób sprawiamy, że struktura naszego kodu staje się bardziej zrozumiała.

Zawieranie się jednego obiektu w drugim nazywa się kompozycją lub agregacją. Nie są to synonimy, są to dwa trochę inne typy zawierania obiektów, ale obecnie to nie jest istotne. Dla przykładu z komputerem:

class Computer {
    Processor processor_;
    Drive drive_;
    Motherboard motherboard_;
    GraphicsCard graphics_card_;
    Memory memory_;
    // ...
};

Komputer składa się (jest skomponowany) z procesora, napędu, płyty głównej, karty graficznej, pamięci.


Diagram klas - kompozycja vs agregacja

Kompozycja i agregacja

  • Kompozycja: Samochód (Car) zawiera dokładnie 1 Gaźnik (Carburetor). Gaźnik jest częścią dokładnie jednego samochodu. Bez samochodu gaźnik nic nie robi, nie może więc działać bez niego.
  • Agregacja: Staw (Pond) może zawierać dowolną liczbę (0..*) Kaczek (Duck). Kaczka może być w danej chwili tylko w jednym stawie lub w żadnych (0..1). Kaczka może żyć poza stawem.

Diagram klas - wikipedia


SHM — Symulator Handlu Morskiego

Statek


SHM - Diagram UML

Diagram klas - SHM