[英]interfaces in multiple inheritance in java, modelling issue
我有以下情况:
如您所见,我有两个班级,分别是讲师和学生。 班级助教是讲课和学生之间的混合体,这是因为他们可以报名参加课程,但他们也可以讲一些基本主题(不被视为讲师)。 我想到了使用接口对这种情况建模的想法,因为我将使用Java进行编程。 这个模型正确吗?
这样TA班将实现接口教学,其中包含分配给该学生教书的一系列课程。
但是,如果我以这种方式建模,我就会意识到自己完全失去了全班讲师。 我如何才能为这种多重继承的情况建模,但又不失去全班讲师的职责? 我的意思是,如果我将讲师编程为接口,它将没有任何我需要进一步使用的方法,例如,计算其工资福利等。 有什么建议吗?
您可以将Lecturer
为一个界面,然后由TeachingAssistant
和Professor
实施。 TeachingAssistant
可以扩展Student
,因为从逻辑的角度来看,助教是学生。
一种选择是拥有Teacher
和Teachable
接口,然后让Lecturer
实现Teacher
(需要像Teacherable这样的单词), Student
实现Teachable
而TA
实现Teacher
和Teachable
。
Lecturer
, Student
和TA
均可扩展Faculty_Staff
。
我认为, tbodt的做法总体上是合理的。 您只需要问:如果某些客户端代码需要Lecturer
,TA实例就足够了吗? 如果存在问题,您可以选择按构图设计,将其教学能力抽象为一个单独的类,例如“ TeachingJob
(我想不出更好的名字)。 这样,实际的Professor
和TeachingAssistant
共享的唯一东西就是他们具有相似的教学工作。 它们不属于同一“类”(实际上是接口)。
混合的方法是涉及TeachingJob
与Lecturer
接口,例如Lecturer
将有一个assign(TeachingJob assignment)
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.