• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

756
Vistas
En un UML, si una interfaz tiene una relación con una clase, ¿esa relación también se aplicaría a cualquier clase que la implemente?

Debido a que cualquier clase que implemente una interfaz es del mismo tipo que dicha interfaz, ¿se aplicaría alguna relación con la interfaz a lo que sea que la implemente?

Por ejemplo, digamos que tenemos una interfaz llamada Producto que tiene una firma de método que devuelve una instancia de la clase Color. Entonces tenemos 2 clases que implementan esta interfaz, llamadas Shelf y Desk. Estas dos clases contienen un atributo de la clase Color.

Ejemplo UML de relaciones 1

o

Ejemplo UML de relaciones 2

¿La relación solo necesitaría mostrarse entre el Producto y el Color o el Producto, el Estante y el Escritorio necesitarían mostrar sus relaciones con la clase Color?

about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Se aplican las asociaciones de una interfaz a su implementación?

Una interfaz define un contrato, indicando las características que la clase de implementación debe proporcionar y las restricciones que deben cumplir. Si una interfaz tiene una asociación con una clase T, entonces todas sus implementaciones deben comportarse exactamente como si también tuvieran una asociación con una clase T.

Esto es lo que nos dicen las especificaciones UML:

Las propiedades propiedad de las interfaces (incluidos los fines de la asociación) implican que el clasificador de comportamiento que realiza debe mantener la información correspondiente al tipo y la multiplicidad de la propiedad y facilitar la recuperación y modificación de esa información. Una propiedad declarada en una interfaz no implica necesariamente que habrá tal propiedad en un clasificador de comportamiento realizado (por ejemplo, puede realizarse mediante operaciones equivalentes de obtener y establecer).

Así que la respuesta a tu pregunta es ambigua:

  • si está utilizando las clases de implementación, puede suponer que tiene dicha asociación incluso si no se muestra en el diagrama.
  • si está diseñando una clase de implementación de este tipo, no puede asumir que la asociación está allí automáticamente: implementar no es heredar . Si no muestra nada en su modelo, no se especifica cómo la clase cumplirá su contrato. Si desea estar completo, debe definir las asociaciones necesarias en las clases de implementación: el segundo diagrama sería, por lo tanto, más preciso y completo.

También podría tener, para una de las implementaciones, una situación diferente, donde la asociación se deriva de otras asociaciones y no se mantiene explícitamente.

¿Tu narrativa realmente requiere una asociación?

En su narrativa, justifica la necesidad de una asociación debido a un método que devuelve un tipo T. Pero tener parámetros o un tipo de retorno no es suficiente para requerir una asociación como se explica en esta otra respuesta SO . Una asociación requiere una relación semántica .

Por lo tanto, es más probable que su interfaz dependa de Color .

Observaciones varias

En ambos diagramas, debe mostrar la dependencia de realización con una punta de flecha en blanco simple (triángulo blanco al final) y no con un extremo de flecha abierta.

En versiones anteriores de UML 1.xx, la interfaz tenía una semántica equivalente a una clase abstracta y no se le permitía tener sus propias propiedades. Si bien las cosas están más relajadas ahora, recomendaría seguir con este enfoque porque:

  • una interfaz está destinada a proporcionar un conjunto de comportamientos
  • los comportamientos se implementan en las operaciones
  • las propiedades privadas no son visibles para el mundo exterior, por lo que no tiene nada que hacer en una interfaz. deben evitarse las propiedades públicas debido al riesgo de encapsulación y desacoplamiento.
  • si realmente necesita una propiedad, podría ser el síntoma de la necesidad de una clase.
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda