Ayuda con diagrama de secuencia UML (y java)

Clicspam

Tengo una estructura de clases en forma de patrón Composición, tal que así:

y lo que tengo que hacer es un diagrama de secuencia de cómo responde el programa al hacer print() de un Compuesto.

la función print hace algo tal que así:

public void print(){

System.out.println(this.nombre);
this.hijo1.print();
this.hijo2.print();

}

Es decir, muestra por pantalla su nombre, y a continuación el de sus hijos, y así recursivamente hasta que los hijos sean un Componente en vez de un Compuesto, ya que el print() de Componente solamente muestra por pantalla su nombre y no hace más llamadas.

El problema es que no entiendo muy bien como puedo hacer esto y plasmar la recursividad en un diagrama de secuencia. Lo que tengo ahora mismo es esto, que creo que no es correcto:

¿Algún entendido que pueda ayuarme?

cabron

Tu problema es que quieres representar la lógica de una operación abstracta, y precisamente por ser abstracta, la lógica no está definida, si no que cada subclase implementa una distinta.

Que yo sepa no hay ninguna forma "correcta" de representar el polimorfismo en UML, así que te tienes que inventar una propia, yo lo hago así:

Creo que está claro, pero en resumen, cuando tienes un método abstracto, finalizas el diagrama ahí sin mostrar ninguna implementación. Luego en cada subclase empiezas a partir de ese mensaje, y muestra ls implementación concreta en esa subclase, por lo que te sale un diagrama por cada implantación en cada subclase.

2 1 respuesta
Clicspam

#2 Muchas gracias, la verdad es que visto así parece muy claro :si:

Usuarios habituales

  • Clicspam
  • cabron