I have this UML Association class. Note that: horizontal line is a solid line and the vertical line is a dashed line.
--------- ---------
|
First of all, don't use Vector, as it's an old class that shouldn't be used anymore for more than 10 years. Use either a Set
or a List
.
If the Transcript
class contains information about the way a student attends a course (for example, the date of its subscription to the course), you could implement it like this:
class Student {
Set transcripts;
}
class Transcript {
Student student;
Course course;
Date subscriptionDate;
}
class Course {
Set transcripts;
}
That doesn't prevent you from providing a method in Student that returns all his courses:
public Set getCourses() {
Set result = new HashSet();
for (Transcript transcript : transcripts) {
result.add(transcript.getCourse());
}
return result;
}
If Transcript
doesn't contain any information, then it's probably there to model how these classes would be mapped in database tables, where the only way to have a many-to-many association between two tables is to use a join table holding the IDs of the two associated tables.