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

时间:2009-07-08 22:37:12

标签: java google-app-engine google-cloud-datastore

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

  
      
  • 内容(摘要类)
  •   
  •   

然后我的课程将有:

  
      
  • 扩展内容的视频列表
  •   
  • 图书清单
  •   

同时

  
      
  • 视频包含标签列表
  •   
  • 图书有标签列表
  •   
  • 课程有标签列表
  •   

是否可以做GAE?

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

根据新问题标题更新

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

你的问题是

  

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

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

  

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

只是为了帮助你,这是一种可以做到的方式,

interface Tagable {
 public doSomeThingWithTagList(); 
} 

class abstract Content implements Tagable {
 List<Tag> tagList; 
} 

class Video extend Content implements Tagable {
} 

class Book Tagable{ 
 List<Tag> tagList; 
} 

class Course Tagable {
   List<Video> videoList;
   List<Books> bookList;
   List<Tag> tagList 
} 

答案 2 :(得分:1)

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