Relaciones entre objetos: Agregación vs. Composición

Relaciones entre objetos: Agregación vs. Composición

Algunas relaciones entre objetos se entienden de forma sencilla, es el caso de la herencia. 

Sin embargo, la diferencia entre asociación y composición no es tan clara. Las dos relaciones hacen referencia a la relación  Parte < ------- > Todo

La bibliografía clásica siempre indica que la diferencia entre agregación y composición es que en el caso de la agregación la parte tiene sentido sin el todo y en el caso de la composición no.

Esta definición es un poco ambigua para la mayoría de lectores. En primer lugar diremos que el concepto que hace de parte debe considerarse dentro del contexto que estemos tratando. Dentro de ese contexto debemos determinar si tiene sentido de forma independiente.

Veamos ejemplos relacionados con el lenguaje.

No hay texto alternativo para esta imagen

En el primer caso tenemos una relación de agregación de las palabras (Partes) con un diccionario (Todo). El objetivo del sistema es determinar el significado de una palabra. No existe, conceptualmente, una estructura subyacente debajo de la relación.

En el segundo ejemplo tenemos una relación de composición de las palabras (Partes) con una frase (Todo). El objetivo del sistema es modelizar frases. En este caso sí que existe, conceptualmente, una estructura subyacente dentro de la relación. Las palabras se deben estructurar en un determinado orden para que la frase sea correcta

Si estamos modelizando el motor de un coche usamos una relación de composición con sus partes. Si estamos modelizando una tienda de piezas de coche estamos hablando de agregación.

Este concepto es muy importante porque el paso a composición indica que existe una estructura subyacente entre las partes.

Como siempre esta modelización se puede usar en cualquier dominio educativo.

Yvan Bazalar

Product Designer | UX | UI | Design Systems

7 meses

Javier Salvador ¿Se podría decir que la composición está vinculada al orden que genera la existencia del todo?

Inicia sesión para ver o añadir un comentario.