繁体   English   中英

Java中的多个继承中的接口,建模问题

[英]interfaces in multiple inheritance in java, modelling issue

我有以下情况:

在此处输入图片说明

如您所见,我有两个班级,分别是讲师和学生。 班级助教是讲课和学生之间的混合体,这是因为他们可以报名参加课程,但他们也可以讲一些基本主题(不被视为讲师)。 我想到了使用接口对这种情况建模的想法,因为我将使用Java进行编程。 这个模型正确吗?

在此处输入图片说明

这样TA班将实现接口教学,其中包含分配给该学生教书的一系列课程。

但是,如果我以这种方式建模,我就会意识到自己完全失去了全班讲师。 我如何才能为这种多重继承的情况建模,但又不失去全班讲师的职责? 我的意思是,如果我将讲师编程为接口,它将没有任何我需要进一步使用的方法,例如,计算其工资福利等。 有什么建议吗?

您可以将Lecturer为一个界面,然后由TeachingAssistantProfessor实施。 TeachingAssistant可以扩展Student ,因为从逻辑的角度来看,助教是学生。

一种选择是拥有TeacherTeachable接口,然后让Lecturer实现Teacher (需要像Teacherable这样的单词), Student实现TeachableTA实现TeacherTeachable

LecturerStudentTA均可扩展Faculty_Staff

我认为, tbodt的做法总体上是合理的。 您只需要问:如果某些客户端代码需要Lecturer ,TA实例就足够了吗? 如果存在问题,您可以选择按构图设计,将其教学能力抽象为一个单独的类,例如“ TeachingJob (我想不出更好的名字)。 这样,实际的ProfessorTeachingAssistant共享的唯一东西就是他们具有相似的教学工作。 它们不属于同一“类”(实际上是接口)。

混合的方法是涉及TeachingJobLecturer接口,例如Lecturer将有一个assign(TeachingJob assignment)方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM