Agregace (programování)

V programování počítače a přesněji v objektově orientovaného programování , agregace umožňuje definovat entity jako jsou připojeny na několika různých tříd entit . Jedná se o zobecnění složení , které neznamená členství.

Například univerzita se skládá z několika fakult a každá fakulta je souhrnem několika profesorů. Zničení univerzity znamená zničení fakult, které ji tvoří, zatímco zničení fakulty neznamená zničení profesorů spojených s touto fakultou agregací. Tento příklad můžeme napsat v C ++  :

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

Je to proto, že učitelé jsou deklarováni jako ukazatele . Trvalo by tedy linii for(long i = 0;i<5;i++)delete enseignants[i]} v ničiteli fakult, aby je zničil.

Na druhou stranu jsou fakulty deklarovány jako členská proměnná (a nikoli jako ukazatel) a budou proto automaticky zničeny, když je instance zničena.

V UML je agregace označena hranicí mezi dvěma třídami zdobenými bílým diamantem na straně agregované třídy.

Diagram tříd UML z předchozího příkladu

Podívejte se také