Google AppEngine中的复杂类层次结构(Java)

是否有可能在我的实体(JDO)中使用Java(GAE / J)在Google AppEngine中inheritance/扩展相同类的多个类。 例如我有:

  • 内容(抽象类)
  • 课程

然后我的课程将有:

  • 扩展内容的video列表
  • 书籍清单

同时

  • video包含标签列表
  • 书有标签列表
  • 课程有标签列表

是否有可能做GAE?

我做的与此类似,但有很多问题。 有这种东西的例子吗?

根据新问题标题更新

我仍然不明白你的困难是什么,但我会试一试

你的问题是

是否有可能为我的实体使用Java(GAE / J)在Google AppEngine中inheritance/扩展相同类的多个类

答案是肯定的,为什么不呢? 我在你的问题中看不到任何无法做到的事情。 你有什么问题?

我做的与此类似,但有很多问题。 有这种东西的例子吗? 你是怎么做到的,因为我看不出你发布的描述有什么问题。

只是为了帮助你,这是一种可行的方式,

interface Tagable { public doSomeThingWithTagList(); } class abstract Content implements Tagable { List tagList; } class Video extend Content implements Tagable { } class Book Tagable{ List tagList; } class Course Tagable { List 

我会根据你提到的内容在黑暗中拍摄:

  • 将标记列表与管理方法一起放在Content中
  • video,书籍和课程都可以扩展内容(不确定这在设计中是否有意义)
  • 课程可以包含video和书籍列表。
  • 所有人都会有标签列表

就像我提到的,这可能在你的设计中没有逻辑意义,但没有更多的信息,我无法分辨。

看来你提到的大多数类关系应该是组合而不是inheritance的实例。 您不能在Java中执行多个实现inheritance,但您可以实现多个接口。 组合没有这些限制,并且对象可以包含对不同(多个)类的其他对象(组合)的引用。