relaciones entre clases

Iniciado por ALBUR, 1 Mayo 2012, 17:54 PM

0 Miembros y 1 Visitante están viendo este tema.

ALBUR

Buenas tardes.
A ver si alguien me puede ayudar.
Tengo tres clases.

Persona, Empleado, Empresa.

clase persona con campos como

dni, nombre, apellidos.

clase empleado introduce un arrayList para añadir personas como empleados.

y una tercera Empresa (y esta es la que no se como hacerla) añade empleados y personas y muestra las personas y los empleados.
Con herencia se hace bien pero hay que hacerlo con relaciones estructurales de asocciacion y agregacion.

Alguien sabe algo de esto, he visto en gogle y aqui ejemplos pero soy un ....

Muchas gracias.





raul_samp

Asociación:

Es generalmente, una relación estructural entre clases, es decir, que en el ejemplo, existe un atributo de la clase Empresa, que es del tipo Persona.

Agregación:

Es una relación que se derivó de la asociación, por ser igualmente estructural, es decir que contiene un atributo, que en todos los casos, será una colección, es decir un array, vector, etc, y además de ello la clase que contiene la colección debe tener un método que agregue los elementos a la colección. También se puede leer como que una empresa tiene varios empleados.
Nos esta diciendo que los objetos empleado forman parte del objeto empresa. Pero, su ciclo de vida no esta atado al del objeto empresa. Es decir si la empresa se destruye los empleados pueden seguir existiendo independientemente.

Composición

Al igual que en la agregación, es una relación estructural pero se le suma, que tiene un método de destrucción de los objetos. Y a diferencia de la asociación, el ciclo de vida del objeto empleado está relacionado con el del objeto empresa. Es decir que si la empresa se destruye, los empleados que tenia desaparecen.
Mucho se ha discutido a cerca de las agregaciones y las composiciones, el debate es casi tan caliente como el de los include y extends de los casos de uso. Ya que algunos sostienen que los lenguajes orientados a objetos, tienen garbage collector, por lo que no necesitan métodos de destrucción de los objetos (relacionados a los ciclos de vida en la compocición). Y que la programación es la misma para las composiciones y las agregaciones, y que la diferencia es meramente conceptual entre una y otras. Es mas existen varias interpretaciones, pero la expuesta es la cual yo me adhiero.

Fuente
Yeah Mr. White, yes science!!

ALBUR

Buenos dias.

     Muchas gracias Raul por el aporte, esta pagina no la había visto y me ha sacado de varias dudas. Te cansas de ver paginas, apuntes, ejercicios pero no das con lo que buscas,

   como siempre digo hay que dar con la persona, el sitio y el momento adecuado,

gracias.