2009-07-08 12 views
2

Ist es möglich, dass mehrere Klassen die gleiche Klasse in Google AppEngine mit Java (GAE/J) für meine Entitäten (JDO) erben/erweitern. Zum Beispiel habe ich:Komplexe Klassenhierarchie in Google AppEngine (Java)

  • Inhalt (Abstract Klasse)
  • Course

und dann wird mein Kurs haben:

  • Liste von Video, ist erweitert Inhalt
  • Liste der
  • Bücher

Zugleich

  • Video hat Liste von Tags
  • Buch hat Liste von Tags
  • Course hat Liste von Tags

Ist es möglich, es GAE zu tun?

Ich mache das ähnlich, aber mit so vielen Problemen. Gibt es Beispiele für diese Art von Zeug?

+0

Maksim, ist Ihr Hauptproblem mit dem Kommentieren Ihrer Klassen, damit JDO richtig funktioniert? Oder fragen Sie, wie Vererbung in Java im Allgemeinen funktioniert? –

+0

Ich weiß, dass dies nicht Ihre Frage ist, aber die Google App Engine verfügt über einen Datenbank-Viewer, der sich im Dashboard für Ihre Google App Engine-Anwendung unter Datastore -> Data Viewer befindet. – Templar

+0

Auch wenn Sie eine neue Version von AppEngine SDK 1.2.2 haben, können Sie im gehosteten Modus zu http: // localhost: 8080/_ah/admin wechseln. – Maksim

Antwort

1

-Update auf der Grundlage neuer Frage Titel

Ich verstehe immer noch nicht, was Ihr Problem ist, aber ich werde es versuchen

Ihre Frage ist

Ist es möglich, mehrere Klassen zu haben, die dieselbe Klasse in Google AppEngine mit Java (GAE/J) für meine Entitäten erben/erweitern

Die Antwort ist ja, warum nicht? Ich sehe in Ihrer Frage nichts, was nicht möglich ist. Welches Problem hast du?

Ich mache das ähnlich, aber mit so viele Probleme. Gibt es irgendwelche Beispiele für diese Art von Zeug? Wie geht es Ihnen genau, weil ich mit der von Ihnen geposteten Beschreibung nichts falsch finde.

und nur um Ihnen zu helfen, hier ist eine Möglichkeit, es kann getan werden,

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 
} 
+0

oh, sorry, mein schlechtes. Ich meine komplexe Hierarchie. Ich habe gerade meinen Fragetitel geändert – Maksim

2

ich hier einen Schuss im Dunkeln nehme auf, was Sie erwähnt:

  • Setzen Sie die Tag-Liste in Inhalt zusammen mit Managementmethoden
  • Video, Bücher und Kurs können alle Inhalt (nicht sicher, ob dies im Design sinnvoll ist)
  • Kurs kann Liste von Videos und Büchern enthalten.
  • Alle werden Liste der Tags haben

Wie ich schon erwähnt, ist dies nicht logischen Sinn in Ihrem Design machen können, aber ohne weitere Informationen, kann ich nicht sagen.

1

Es scheint, dass die meisten Klassenbeziehungen, die Sie erwähnen, Instanzen der Zusammensetzung und nicht der Vererbung sein sollten. Sie können nicht mehrere Implementationsvererbungen in Java ausführen, aber Sie können mehrere Schnittstellen implementieren. Komposition hat diese Grenzen nicht und ein Objekt kann Verweise auf andere Objekte (Komposition) verschiedener (mehrerer) Klassen enthalten.