tripartita tipo relaciones relacion objetos multiplicidad entre ejemplos ejemplo codigo clases asociacion agregacion java associations uml

java - tipo - relaciones entre clases c#



UML: cómo implementar la clase de asociación en Java (3)

En primer lugar, no use Vector, ya que es una clase antigua que no debería usarse más por más de 10 años. Utilice un Set o una List .

Si la clase de Transcript contiene información sobre la forma en que un estudiante asiste a un curso (por ejemplo, la fecha de su suscripción al curso), podría implementarlo de la siguiente manera:

class Student { Set<Transcript> transcripts; } class Transcript { Student student; Course course; Date subscriptionDate; } class Course { Set<Transcript> transcripts; }

Eso no le impide proporcionar un método en Student que devuelva todos sus cursos:

public Set<Course> getCourses() { Set<Course> result = new HashSet<Course>(); for (Transcript transcript : transcripts) { result.add(transcript.getCourse()); } return result; }

Si Transcript no contiene ninguna información, entonces es probable que exista un ejemplo de cómo estas clases se asignarán en las tablas de la base de datos, donde la única manera de tener una asociación de muchos a muchos entre dos tablas es usar una tabla de unión que contenga los ID. de las dos tablas asociadas.

Tengo esta clase de asociación UML. Tenga en cuenta que: la línea horizontal es una línea continua y la línea vertical es una línea discontinua.

--------- --------- | |*(a) *(b)| | | CLASS |________________| CLASS | |STUDENT | | | COURSE | --------- | --------- |*(c) ______|______ | | | | | CLASS | | TRANSCRIPT | |_____________|

Entiendo esta relación, pero he encontrado algunos problemas al implementar este UML para codificar. Puedo implementar la relación entre el Student clase y el Course clase para codificar. Aquí está mi código:

class Student { Vector<Course> b; } class Course { Vector<Student> a; }

Pero, en la clase Transcript , no entiendo mucho, cómo usar esta clase en el código. ¿Es propiedad tanto de la clase Student como del Course ? Entonces, si eso es cierto entonces el código será:

class Student { Vector<Course> b; Vector<Transcript> c; } class Course { Vector<Student> a; Vector<Transcript> c; }

¿Es verdad? Si esto es incorrecto, enséñame cómo implementar este UML.

Gracias :)


Sé que esta pregunta es muy antigua, pero tengo una manera más conveniente que incrustar las relaciones n..1 en la clase de asociación:

public class Transcript { //Transcript''s properties } public class Course { private Map<Student, Transcript> transcriptsByStudent; } public class Student { private Map<Course, Transcript> transcriptsByCourse; }


Solo para agregar, en su modelo usted denota la multiplicidad en la clase de asociación. Esto es innecesario porque la clase de asociación ES la asociación en sí misma, y ​​la relación de multiplicidad de las dos clases originales satisfará.