UML:如何在Java中实现Association类
我有这个UML协会类。注意:水平线是实线,垂直线是虚线。
--------- ---------| |*(a) *(b)| |
| CLASS |________________| CLASS |
|STUDENT | | | COURSE |
--------- | ---------
|*(c)
______|______
| |
| |
| CLASS |
| TRANSCRIPT |
|_____________|
我了解这种关系,但是在实现此UML进行编码时遇到了一些问题。我可以实现类Student
与类之间的关系Course
以进行编码。这是我的代码:
class Student { Vector<Course> b;
}
class Course {
Vector<Student> a;
}
但是,在课堂上Transcript
,我对如何在代码中使用此类不太了解。是阶级Student
和阶级的财产吗Course
?因此,如果是这样,那么代码将是:
class Student { Vector<Course> b;
Vector<Transcript> c;
}
class Course {
Vector<Student> a;
Vector<Transcript> c;
}
是真的吗 如果这是错误的,请教我如何实现此UML。
谢谢 :)
回答:
首先,不要使用Vector,因为它是一个古老的类,不应再使用10年以上。使用Set
或List
。
如果Transcript
班级包含有关学生参加课程的方式的信息(例如,其订阅课程的日期),则可以这样实现:
class Student { Set<Transcript> transcripts;
}
class Transcript {
Student student;
Course course;
Date subscriptionDate;
}
class Course {
Set<Transcript> transcripts;
}
这不会阻止您在Student中提供一种返回其所有课程的方法:
public Set<Course> getCourses() { Set<Course> result = new HashSet<Course>();
for (Transcript transcript : transcripts) {
result.add(transcript.getCourse());
}
return result;
}
如果Transcript
不包含任何信息,则可能可以对如何在数据库表中映射这些类进行建模,其中在两个表之间进行多对多关联的唯一方法是使用持有ID的联接表。两个关联的表。
以上是 UML:如何在Java中实现Association类 的全部内容, 来源链接: utcz.com/qa/401288.html