2

私のエンティティ(JDO)のためにJava(GAE/J)を使用してGoogle AppEngineで同じクラスを継承/拡張する複数のクラスを持つことは可能ですか?たとえば、私は持っています:

  • 内容(抽象クラ​​ス)
  • コース

そして、私のコースは次のようになります:

  • コンテンツを拡張するビデオのリスト
  • 書籍一覧

同時に

  • ビデオにはタグのリストがあります
  • 本にはタグのリストがあります
  • コースにはタグのリストがあります

GAEはできますか?

私はこれに似ていますが、非常に多くの問題を抱えています。この種のものの例はありますか?

4

3 に答える 3

2

あなたが言及したことに基づいて、ここで暗闇の中でショットを撮ります:

  • タグリストを管理方法とともにContentに入れる
  • ビデオ、書籍、およびコースはすべてコンテンツを拡張できます (これが設計上意味があるかどうかはわかりません)
  • コースには、ビデオと本のリストを含めることができます。
  • すべてにタグのリストがあります

先に述べたように、これはあなたの設計では論理的に意味をなさないかもしれませんが、それ以上の情報がなければわかりません。

于 2009-07-08T22:59:35.617 に答える
1

新しい質問のタイトルに基づいて更新

私はまだあなたの困難が何であるかを理解していませんが、私はそれを試してみます

あなたの質問は

私のエンティティのために、Google AppEngine with Java (GAE/J) で同じクラスを継承/拡張する複数のクラスを持つことは可能ですか?

答えはイエスです。あなたの質問には、できないことは何もありません。どのような問題がありますか?

私はこれに似ていますが、非常に多くの問題を抱えています。この種のものの例はありますか?あなたが投稿した説明に何の問題も見られないので、どうやって正確にやっていますか。

そして、あなたを助けるために、これがそれを行うことができる1つの方法です.

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 
} 
于 2009-07-08T22:50:55.293 に答える
1

あなたが言及するクラス関係のほとんどは、継承ではなく合成のインスタンスであるべきだと思われます。Java では複数の実装継承を行うことはできませんが、複数のインターフェイスを実装することはできます。コンポジションにはこれらの制限がなく、オブジェクトには、異なる (複数の) クラスの他のオブジェクト (コンポジション) への参照を含めることができます。

于 2009-07-08T23:01:51.387 に答える