Anda di halaman 1dari 30

Composicin

y
Agregacin

Existen

diversas formas para


organizar clases en un programa
con mltiples clases, una de ellas
es la agregacin.

Hay dos formas de agregacin:


La primera es cuando las clases
forman parte de una clase
contendora ms grande, donde
una clase es el todo y las otras
clases son parte del todo.

Hay dos formas de agregacin:


La otra forma de agregacin
tambin define una clase como el
todo y a otras clases como partes
del
todo.
Pero
tiene
una
restriccin adicional que indica
que la clase todo es la
propietaria exclusiva de las
clases parte.

Composicin

Es un tipo de relacin entre dos objetos que tienen


comunicacin persistente.

Se utiliza para expresar que un par de objetos tienen


una relacin de dependencia para llevar a cabo su
funcin, de modo que uno de los objetos
involucrados est compuesto por el otro.

Con la composicin, la clase todo se denomina


compuesto, las clases parte se denominan
componentes y el compuesto contiene a los
componentes.

Se considera que la composicin es una forma fuerte


de la agregacin, puesto que las conexiones
compuesto-componentes son fuertes (debido a que
cada componente slo tiene un propietario: el
compuesto).

De

manera prctica, es posible reconocer


asociatividad entre dos objetos A y B si la
proposicin "A tiene un B" (o viceversa) es
verdadera. Por ejemplo: "una computador
tiene un disco duro" es verdadero; por tanto,
un objeto computador tiene una relacin de
composicin con al menos un objeto disco
duro.

En una jerarqua de composicin (as como en una


jerarqua de agregacin), la relacin entre una clase
contenedora y una de sus clases parte se denomina
relacin tiene-un. Por ejemplo, cada cuerpo humano
tiene un cerebro y tiene un corazn.

AGREGACIN

Consiste en la agrupacin de una o ms clases


dentro de otra.
Jerarqua de agregacin. Relacin tiene-un.

En una agregacin, las partes no son propiedad exclusiva del todo.

Siempre que exista una relacin de agregacin, es


necesario guardar el objeto de la clase contenida
en una variable de referencia de la clase
contenedora, y tambin debe guardarse en otra
variable de referencia fuera de la clase
contenedora.

EJEMPLO DE AGREGACIN

La regla general para implementar relaciones de agregacin consiste en:


Siempre que dos clases tienen una relacin de agregacin, es necesario guardar
el objeto de la clase contenida en una variable de referencia en la clase
contenedora, y tambin debe guardarse en otra variable de referencia fuera de la
clase contenedora. De esa forma, el objeto puede aadirse a otra agregacin y
tener dos propietarios distintos (el hecho de tener dos propietarios distintos es
permitido por la agregacin).

Ejemplo de Agregacin y Composicin

Comparacin entre Composicin y Agregacin

Si la entidad motor forma parte de carro, y corazn forma parte de la persona, entonces la flecha apunta a la
clase carro y persona respectivamente y el diamante va pegado a estas clases .
La diferencia entre la relacin carro-ruedas y persona-corazn, es que en el primer caso se llama
agregacin por ser una relacin en donde la existencia del carro no depende de las ruedas, mientras que
en l segn caso una persona no existe sin su corazn. Por tanto la relacin de la persona con su
corazn es de composicin.
Tanto en la agregacin como en la composicin ocurre que varias clases forman parte de una clase
contenedora.
La diferencia entre las dos formas de agregacin es que, en la composicin, la clase todo es la propietaria
exclusiva de las clases parte; mientras que en la agregacin las clases parte pueden pertenecer a otras
clases adems de la clase todo

Conclusiones

Cuando un programa tiene una gran cantidad de clases se utiliza la agregacin, la cual nos permite
organizar las clases de forma ordenada.
Existen dos formas primarias de agregacin, la agregacin propiamente dicha (agregacin dbil) y la
composicin (agregacin fuerte).
En una jerarqua de composicin, as como en una jerarqua de agregacin, la relacin entre una clase
contenedora y una de sus clases parte se denomina relacin tiene-un.
En la composicin las clases parte pueden transferirse de una clase todo a otra; pero siempre
pertenecern a una sola clase todo.
En la agregacin (dbil) la clase contenida presenta independencia con respecto a la clase todo; es
decir que la clase contenida puede seguir existiendo aunque la clase todo sea eliminada.
Siempre que dos clases tienen una relacin de agregacin (dbil), es necesario guardar el objeto de la
clase contenida en una variable de referencia en la clase contenedora, y tambin debe guardarse
fuera de la clase contenedora. De esta forma, el objeto puede aadirse a otra agregacin y tener dos
propietarios distintos.
La agregacin con respecto a su modelamiento en UML se representa mediante una lnea que parte
de la clase contenida y termina en forma de rombo blanco en la clase contenedora.
La composicin con respecto a su modelamiento en UML se representa mediante una lnea que parte
de la clase contenida y termina en forma de rombo negro en la clase contenedora.

Anda mungkin juga menyukai