質問

エンティティ (JDO) に対して Java (GAE/J) を使用した Google AppEngine で同じクラスを継承/拡張する複数のクラスを持つことは可能ですか。たとえば、次のようなものがあります。

  • コンテンツ (抽象クラス)
  • コース

私のコースには次のものがあります:

  • コンテンツを拡張するビデオのリスト
  • 本のリスト

同時に

  • 動画にはタグのリストがあります
  • 本にはタグのリストがあります
  • コースにはタグのリストがあります

GAEでもできるでしょうか?

私もこれと似たようなことをしていますが、非常に多くの問題があります。この種の例はありますか?

役に立ちましたか?

解決

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

あなたの難しさはまだわかりませんが、試してみます

あなたの質問は

Google Appengineで同じクラスを継承/拡張する複数のクラスが私のエンティティに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 
} 

他のヒント

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

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

先ほども述べたように、これは設計において論理的に意味をなさない可能性がありますが、詳しい情報がなければ判断できません。

あなたが言及クラス関係のほとんどは合成ではなく、継承のインスタンスである必要がありそうです。あなたはJavaで複数の実装継承を行うことはできませんが、複数のインタフェースを実装することができます。組成物は、これらの制限を持っていないとオブジェクトが異なる(複数の)クラスの他のオブジェクト(組成物)への参照を含めることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top