Quand un objet A contient une référence à un autre objet B ou nous pouvons dire que l’objet A a une relation HAS-A avec l’objet B, alors on parle d’agrégation.
L’agrégation aide à réutiliser le code. L’objet B peut avoir des méthodes utilitaires et qui peuvent être utilisées par plusieurs objets. Quelle que soit la classe qui a l’objet B alors elle peut utiliser ses méthodes.
Exemple
public class Vehicle{}public class Speed{}public class Van extends Vehicle { private Speed sp;}
Ceci montre que la classe Van A la vitesse. En ayant une classe séparée pour Speed, nous n’avons pas besoin de mettre tout le code qui appartient à speed à l’intérieur de la classe Van, ce qui permet de réutiliser la classe Speed dans de multiples applications.
Dans la fonctionnalité orientée objet, les utilisateurs n’ont pas besoin de se soucier de savoir quel objet fait le vrai travail. Pour y parvenir, la classe Van cache les détails d’implémentation à ses utilisateurs. Donc, fondamentalement, ce qui se passe, c’est que les utilisateurs demanderaient à la classe Van de faire une certaine action et la classe Van fera le travail par elle-même ou demandera à une autre classe d’effectuer l’action.Ce concept de contenir un objet pour faire une action est appelé Agrégation.
.