减少java继承层次结构

时间:2015-02-14 16:02:29

标签: java inheritance

这个问题在接受采访时询问了继承等级。考虑我们有一个很长的继承层次结构。 enter image description here

  1. 维持长链继承层次结构是否合适?
  2. 如果不是。在java中我们如何减少它?
  3. 上面只是一个例子。

3 个答案:

答案 0 :(得分:2)

每月付费和每小时付费不应该是课程,而是最好的界面。为了回答你的问题,是的,一个长期的链条"很好。但只要它仍然有意义。

答案 1 :(得分:0)

在这种情况下,我会说"每月付费"和"每小时支付"不应该继承工程师,因为有人支付的频率不是一种人。相反,班级人员应该有一个成员" PayFrequency"。这被称为"组合"而不是"继承"。

这样做的一个原因是您可能还有一位每月支付医生。然后你需要两个课程"每月付费"这显然不会起作用。

问题不是继承链的长度之一。只要你的链条适合你想要建模的数据,你就应该根据自己的需要建立链条。

答案 2 :(得分:0)

问题可能与经典设计模式有关,例如组合授权

例如,一个人可以拥有作业。这个人有一个名字;但由于它的工作,它不会成为一个不同类型的人。而是将作业特定的功能委派到作业对象。