Mapeo de relaciones entre clases en un diagrama uml y Java



Descargar 427,04 Kb.
Página2/4
Fecha de conversión02.10.2017
Tamaño427,04 Kb.
1   2   3   4

Asociación binaria

Una asociación se define como una “relación semántica entre dos o más clases (aquí se consideran sólo entre dos clases) que especifica conexiones entre las instancias de estas clases”. En orientación a objetos, el comportamiento de un sistema se define en términos de interacciones entre objetos, es decir, intercambios de mensajes. “Enviar un mensaje” habitualmente resulta en la invocación de una operación en el receptor. Las asociaciones son necesarias para la comunicación, ya que los mensajes son enviados a través de las asociaciones; sin asociaciones, los objetos quedarían aislados, incapaces de interactuar.

Los lenguajes que soportan programación orientada a objetos permiten expresar muy bien las relaciones de generalización e implementación pero, no tienen ninguna sintaxis o semántica para hacerlo con las asociaciones contextuales, en forma directa. Por tanto, éstas deben implementarse mediante una adecuada combinación de clases, atributos y métodos.

La idea más simple es proveer un atributo para almacenar los enlaces de la asociación, métodos de acceso-modificación para manipularlos y aquéllos necesarios para controlar las restricciones impuestas por la asociación. Sería conveniente agrupar estos métodos y atributos de alguna forma para identificar más fácilmente, dentro de la clase, qué pertenece al control de la asociación y qué a los atributos y métodos propios de la clase.



Esta idea, sin embargo, proporciona una implementación muy incompleta ya que no garantiza automáticamente el cumplimiento de las propiedades de la asociación. El número de las consideraciones que el programador debe tener en cuenta al escribir el código ligado a las asociaciones, es tan grande que continuamente corre el riesgo de olvidar algún detalle esencial, especialmente cuando se trata de asociaciones con multiplicidad mayor a 1 o asociaciones bidireccionales. En la siguiente figura se ilustran ejemplos de asociación unidireccional (a) y bidireccional (b). La asociación Llave-Puerta es unidireccional: una llave puede acceder a la puerta que abre pero una instancia de Puerta no conoce el conjunto de instancias de Llave que la abren.

En la figura que sigue, para el caso (a), en el extremo B, si x es 0 o 1, (si la multiplicidad es 0 se dice que la asociación es opcional y si es 1, se dice que es obligatoria), se añade una variable de instancia de tipo B (en el caso de asociación obligatoria hay que asegurarse que sea distinta de null) en el código de la clase A y si la multiplicidad del lado B es de tipo “0…*” se añade una variable de instancia de tipo CollectionOfB en el código de la clase A. La clase contenedora o colección CollectionOfB implementan java.uti.List o java.util.Set.



1   2   3   4


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal