Agregacja (programowanie)

W programowaniu komputerowym, a dokładniej w programowaniu zorientowanym obiektowo , agregacja umożliwia zdefiniowanie jednostki jako powiązanej z kilkoma różnymi jednostkami klasowymi . Jest to uogólnienie składu , które nie pociąga za sobą członkostwa.

Na przykład uniwersytet składa się z kilku wydziałów, a każdy wydział to zespół kilku profesorów. Zniszczenie uniwersytetu oznacza zniszczenie wydziałów, które go tworzą, a zniszczenie wydziału nie oznacza zniszczenia profesorów związanych z tym wydziałem stosunkiem agregacji. Ten przykład możemy napisać w C ++  :

class Professeur; class Departement { ... private: // Agrégation Professeur* enseignants[5]; ... }; class Universite { ... private: // Composition Departement facultes[20]; ... };

Dzieje się tak, ponieważ nauczyciele są deklarowani jako wskazówki . Trzeba by ustawić linię for(long i = 0;i<5;i++)delete enseignants[i]} niszczyciela wydziałów, żeby je zniszczyć.

Z drugiej strony wydziały są zadeklarowane jako zmienna składowa (a nie wskaźnik) i dlatego zostaną automatycznie zniszczone, gdy instancja zostanie zniszczona.

W UML agregację zaznacza linia między dwiema klasami ozdobiona białym rombem po stronie klasy kruszywa.

Diagram klas UML z poprzedniego przykładu

Zobacz też