I have this UML Association class. Note that: horizontal line is a solid line and the vertical line is a dashed line.
--------- ---------
| |*(a) *(b)| |
| CLASS |________________| CLASS |
|STUDENT | | | COURSE |
--------- | ---------
|*(c)
______|______
| |
| |
| CLASS |
| TRANSCRIPT |
|_____________|
I understand this relationship but I have met some problems when implement this UML to code. I can implement relation between class Student and class Course to code. Here is my code:
class Student {
Vector<Course> b;
}
class Course {
Vector<Student> a;
}
But, at class Transcript, I don’t understand so much, how to use this class in code. Is it the property of both class Student and Course. So, if that’s true then the code will be:
class Student {
Vector<Course> b;
Vector<Transcript> c;
}
class Course {
Vector<Student> a;
Vector<Transcript> c;
}
Is it true? If this is wrong, please teach me how to implement this UML.
Thanks 🙂
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
Setor aList.If the
Transcriptclass 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:That doesn’t prevent you from providing a method in Student that returns all his courses:
If
Transcriptdoesn’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.