Professional Documents
Culture Documents
Implementación en Java
V7.0
Septiembre 2015
Ferreiras
• Por Ejemplo:
Persona 0..1
Celular
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
2
Agregación,
• En la agregación el objeto contenido existe fuera del
objeto contenedor, es pasado a este ultimo como un
argumento en su construcción.
• El objeto contenido puede al mismo tiempo pertenecer
a otro objeto contenedor.
• Por ejemplo, la asociación Persona Carro:
• El Carro es creado en un contexto diferente y entonces se
convierte en una propiedad de un objeto Persona, pero al
mismo tiempo puede pertenecer a otro objeto persona; Por
conduce
el contrario la asociación Persona Carro
no es una agregación, es una composición. Ver más
adelante.
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
3
Agregación, Implementación
• Se construye el objeto contenido y luego es
pasado como argumento al objeto al construir
el objeto contenedor.
• Ver código agregacion0.java
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
4
Agregación,
•
Pedido Carro
- unMotor: Motor - unMotor: Motor
- unaRueda: Rueda[4]
4
Motor Rueda
Agregación
Es una forma especializada de asociación donde todo objeto tiene su propio ciclo de vida
y el objeto que es parte puede que pertenece a otro conjunto.
Como puede verse, la empresa no gestiona el tiempo de vida del empleado. Si se destruye la
empresa, todavía existe Empleado. Este escenario mapea bastante bien con el mundo real.
Un solo empleado puede pertenecer a múltiples compañías (El trabajo a tiempo parcial), si borramos
la Compañía, el empleado no será eliminado, seguirá vivo.
Otro ejemplo:
Supongamos que en una universidad de un solo profesor puede pertenecer a varios departamentos.
Esa es su regla de negocio. Si el departamento de CS es eliminado, no se eliminan sus profesores!
*/
Agregacion0.java
En notación UML
Empresa 1..
Empleado
import java.util.Vector;
class Empleado {
// Tester class
/*
Wilfredo Mojica
Raul Mateo
Leoncio Martinez
Kleto Ferrer
La empresa fue eliminada, los empleados aun estan vivos !!. Ellos son:
Wilfredo Mojica
Raul Mateo
Leoncio Martinez
Kleto Ferrer
D:\Ferreiras2\Java, Mi Codigo>
*/
Persona Corazón
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
12
Composición,
Persona
- unaMano: Mano[0,2]
- unaPierga: Pierna[0,2]
0..2 0..2
Pierna Mano
Persona Corazón
1
composición
*/
class Corazon {
this.tipoCorazon = tc;
}
// Tester class
/*
D:\Ferreiras2\Java, Mi Codigo>
*/
Implementación
1
Persona Corazón
0..1 0..1
Carro Celular
*/
this.tipoCorazon = tc;
}
this.marca = ma;
}
class Celular {
this.numero = nu;
}
}
Fíjese que para ver el corazón de Eso significa que la clase
} un objeto Persona tiene que ser vía contenedora, Persona, controla el
un método miembro de dicha clase acceso al objeto contenido,
Corazón
Ferreiras Agregación, Composición: Implementación en Java
28
/*
El corazon: Atletico
Tiene un carro marca: Toyota
Tiene un celular numero: 123456789
C:\Archivos de programa\Java\jdk1.7.0\bin>
*/
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
31
Revisitando: Asociación, Composición,
Agregación
•
Pedido Carro
- unMotor: Motor - unMotor: Motor
- unaRueda: Rueda[4]
4
Motor Rueda
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
32
Revisitando: Asociación, Composición,
Agregación
• Agregación es una forma especializada de asociación que
implica contención ( "consiste de“, “se compone de", "tiene
un“, ...
• En la agregación, las instancias de clases existen de forma
independiente y, por lo tanto, los ciclos de vida de los objetos
implicados no están fuertemente acoplados.
• Debido a que la agregación implica contención, por
definición, no es necesario nombrarla con las etiquetas "se
compone de" o "consiste de“, “tiene un”, como en la
asociación
Pensum Curso
0..* 10..*
En esta agregación:
• Un Pensum debe estar compuesto de diez o más Curso
• Un Curso puede ser incluido en cero o más Pensum
Universidad
Rector
Facultad
B metodo2( int j );
A B
+ metodo1( B objB ):void
+ metodo2( int j ): B
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
39
Revisitando: Asociación, Composición,
Agregación
• Asociación Fuerte ( = Composición )
private B variableMiembroA;
A
- xB: B B
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
40
Revisitando: Asociación, Composición,
Agregación
• Agregación y Composición son tipos especiales de asociación.
• La Agregación es usada para representar una relación de propiedad o una relación
todo/parte;
• La composición es usada para representar una forma más fuerte de propiedad: El
tiempo de vida del todo y la parte son coincidentes; El todo tiene la responsabilidad
de disponer de sus partes en términos de su creación y destrucción.
• En la ccomposición el tiempo de vida del objeto contenido ( la parte ) depende del
objeto contenedor ( el todo ). No es así con la agregación.
Ferreiras
Ferreiras Agregación, Composición: Implementación en Java
41
Referencias
• Beginning Java Objects: From Concepts to Code; Jacquie Barker, Secon Edition;
Apress; 2005.-
• Recomendado, casi obligatorio, visitar este URL:
http://stackoverflow.com/questions/731802/what-is-the-difference-between-
composition-and-association-relationship
• http://aviadezra.blogspot.com/2009/05/uml-association-aggregation-composition.html