Está en la página 1de 22

Relaciones entre objetos

Un conjunto de objetos aislados tiene


escasa capacidad para resolver un
problema
En una aplicacin real los objetos
colaboran e intercambian informacin,
existiendo distintos tipos de relaciones entre
ellos
A nivel de diseo, podemos distinguir entre
5 tipos de relaciones bsicas entre clases de
objetos:
1
Relaciones entre objetos
Asociacin
Agregacin
Composicin
Dependencia
Herencia
2
Asociacin
La asociacin es la relacin ms importante y
comn.
Refleja una relacin entre dos clases
independientes que se mantiene durante la vida
de los objetos de dichas clases o al menos durante
un tiempo prolongado
En UML suele indicarse:
Nombre de la relacin
Sentido de dicha relacin
Multiplicidad (cardinalidad) en los dos extremos

3
Ejemplo de Asociacin
4
5
Ejemplo del proyecto
Controlador Cuentas
titulares
Implementacin de una
relacin de asociacin
Una asociacin se implementa en Java
introduciendo referencias a objetos de una clase
como atributos en la otra
Entonces, se agrega el atributo titular en la clase
Cuenta, que contendr el nombre del propietario
de la cuenta.
Sin embargo, el titular es una persona, con sus
propios atributos (nombre, nmero de dui,
direccin, telfono y fecha de nacimiento)
Por lo tanto, el titular de la cuenta debera ser una
clase, con el nombre Cliente ya que as se
conocen los titulares de las cuentas en la institucin
financiera
6
Implementacin de una
relacin de asociacin
Si la relacin tiene una multiplicidad superior a uno
entonces ser necesario utilizar un array de
referencias.

Tambin es posible utilizar una estructura de datos
dinmica del paquete java.util como Vector o
LinkedList para almacenar las referencias.

Normalmente la conexin entre los objetos se
realiza recibiendo la referencia de uno de ellos en
el constructor o una operacin ordinaria del otro
7
Atributo de Referencia:
titular
8
Nombres de Asociaciones
Clase-FraseVerbal-Clase
Persona-Trabaja-para-Compaa
Tienda-Almacena-Articulo
Venta-Pagada-mediante-Pago

Formatos:
Pagada-mediante
Pagada_mediante
PagadaMediante

9
Multiplicidad
(Cardinalidad)
10
Define cuantas
instancias de la clase
B pueden asociarse
con una instancia de
la clase A
Multiplicidad depende del contexto
Multiplicidad depende del contexto
0..1, si el artculo se vende o desecha y no se almacenara
ms en la Tienda
1, para asegurar que una instancia de Articulo siempre
se relacionar con una instancia concreta de Tienda, de
lo contrario se indica error o corrupcin en datos
Sentido de la Relacin
Por defecto leer (sin usar flecha de direccin):
De izquierda a derecha, y
De arriba hacia abajo

De lo contrario colocar flecha de direccin
13
Direccin de Lectura
de la Asociacin
Mltiples asociaciones
entre dos clases
Asociaciones posibles en un
diagrama de clases
Diagrama de clases con N clases, puede tener N (N-1)
asociaciones posibles
Provoca ruido visual, lo hace incomprensible
Ejemplo:
3 clases
6 asociaciones (bidireccionales)
Criterio para identificar
asociaciones tiles (necesito-conocer)
Relacin que es necesaria conservar durante algn tiempo
(milisegundos o aos, dependiendo del contexto)
Es decir, mantener en memoria una relacin entre objetos.
Ejemplo:
Tipos de asociaciones a incluir
en el Modelo del Dominio
1. Asociaciones tiles ( necesito-conocer)
Ejemplo de asociacin til y no til
2. Asociaciones derivadas de la lista de asociaciones
comunes
Lista de Asociaciones
Comunes
Categora
1. A es una parte fsica de
B


2. A es una parte lgica
de B
3. A est contenido
fsicamente en B

4. A est contenido
lgicamente en B
Ejemplo
1. Cajon-Registro (o ms
concretamente, Caja
de Venta), Ala-Avion
2. LineaDeVenta-Venta,
EtapaVuelo-RutaVuelo

3. Registro-Tienda,
Articulo-Estantera,
Pasajero-Avion
4. DescripcionDelArticulo
-Catalago, Vuelo-
PlanificacionVuelo
Lista de Asociaciones
Comunes
Categora
5. A es una descripcin
de B


6. A es una lnea de una
transaccin o informe
de B

7. A se conoce/registra/
recoge/informa
/captura en B
8. A es miembro de B
Ejemplo
5. DescripcionDelArticulo
-Articulo,
DescripcionDelVuelo-
Vuelo
6. LineaDeVenta-Venta,
TrabajoMantenimiento
-
RegistroDeMantenimie
nto
7. Venta-Registro,
Reserva-ListaPasajeros

8. Cajero-Tienda, Piloto-
CompaiaAerea
Lista de Asociaciones
Comunes
Categora
9. A es una sub-unidad
organizativa de B

10. A utiliza o gestiona B

11. A se comunica con B


12. A est relacionado con
una transaccin B
Ejemplo
9. Departamento-Tienda,
Mantenimiento-
CompaaAerea
10. Cajero-Registro, Piloto-
Avion
11. Cliente-Cajero,
AgenteDeReservas-
Pasajero

12. Cliente-Pago,
Pasajero-Billete
Lista de Asociaciones
Comunes
Categora
13. A es una transaccin
relacionada con otra
transaccin B
14. A est al lado de B


15. A es propiedad de B

16. A es un evento
relacionado con B
Ejemplo
13. Pago-Venta, Reserva-
Cancelacion

14. LineaDeVenta-
LineaDeVenta,
Ciudad-Ciudad
15. Registro-Tienda, Avion-
CompaaAerea
16. Venta-Cliente, Venta-
Tienda, Salida-Vuelo

También podría gustarte