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,但您可以实现多个接口。 组合没有这些限制,并且对象可以包含对不同(多个)类的其他对象(组合)的引用。