2016-12-01 67 views
0

这是一个基于舆论的问题,所以没准就会被删除。方法应该在X类还是Y类?

比方说,我有类Teacher和类Course。我想创建方法GetCourseId(TeacherId)将接收作为输入参数TeacherId并返回一个CourseId

该方法应该在类Teacher或类Course

我想我的问题是,如果有,可以归入任何数量的类的方法,应该在哪里它终于去了?有没有一些潜规则呢?

谢谢。

回答

1

我经常看到创建第三个类来处理类似这样的事情,其中​​一个方法需要了解2个类,并且它不适合相当于

在这种情况下,它会是一个CourseManager的创建,可以包含类似GetCourseIdGetCourseByTeachersAddCourse,和其他“管理”任务的方法。

其中许多将作为各种包装 - CourseManager.AddCourse可能会在构造函数Course上通过很多工作。

0

通常我这样定义教师课程班如Java豆刚刚举行的字段,getter/setter方法和直接使用的字段,不包括任何业务逻辑的一些基本方法。

根据我的应用程序所支持的功能/特性,我创建它通过与其他Java豆通信实现我的企业经营/管理类。

所以,如果我创建了一所大学的一个简单的课程注册申请,我会定义3的Java bean:教师学生除了一些管理类基础我想在我的应用程序中支持的功能,即在我们的案例中注册管理器哪些方法可以执行:registerStudentInCourse(),getStudentCourses(),addCourseTeacher() ..

请注意,我只是分享我的编码方式,人们可能会或可能不会同意它。

0

的最简单的解决方案将基于基数在Teacher类(OneToOne或一对多)被具有象

private Course course 

private Set<Course> courses

的性质。它可能是ManyToMany,也取决于需求和数据建模。您可以使用getter/setter方法获取或设置分配给教师的课程。

除了这个,如果关系是双向比你可以在课程类中具有类似的属性。在双向映射的情况下,您可以在Teacher类中使用实用程序方法,如registerCourse,它将设置实体之间的适当关系。

public boolean registerCourse(Course course){ 
    this.course = course; 
    course.setTeacher(this); 
} 

你也可以在Course类中有这种实用方法。

相关问题