Komplexe Klassenhierarchie in Google App Engine (Java)
-
11-09-2019 - |
Frage
Ist es möglich, mehrere Klassen zu haben, die erben / dieselbe Klasse in Google App Engine mit Java (GAE / J) für meine Entitäten (JDO) erstreckt. Zum Beispiel habe ich:
- Inhalt (Abstract Klasse)
- Kurs
und dann wird mein Kurs hat:
- Liste von Video, das erweitert Inhalt ist
- Liste der Bücher
Zur gleichen Zeit
- Video hat Liste der Tags
- Buch hat Liste der Tags
- Kurs hat Liste der Tags
Ist es möglich, es GAE zu tun?
Ich mache ähnlich wie diese, aber so viele Probleme. Gibt es Beispiele für diese Art von Sachen?
Lösung
Update auf der Grundlage neuer Frage Titel
Ich verstehe immer noch nicht, was Ihr Problem ist, aber ich gebe ihm einen Schuss
Ihre Frage ist
Ist es möglich, habe mehr Klassen, die erben / erstreckt gleiche Klasse in Google App Engine mit Java (GAE / J) für meine Entitäten
Die Antwort ist ja, warum nicht? Ich habe nichts in Frage sehen, die nicht getan werden kann. Welches Problem haben Sie?
Ich mache ähnlich wie diese, aber mit so viel Probleme. Gibt es irgendwelche Beispiele für diese Art von Sachen? Wie werden Sie es genau zu tun, weil ich nichts falsch mit der Beschreibung sehen Sie auf dem Laufenden.
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
}
Andere Tipps
Ich werde einen Schuss im Dunkeln nehmen hier auf das, was Sie erwähnt haben:
- Legen Sie die Tag-Liste in Inhalt zusammen mit Management-Methoden
- Video, Bücher und Kurs kann alle erweitern Inhalt (nicht sicher, ob dies Sinn im Design macht)
- Kurs kann Liste des Videos enthält und Bücher.
- Alle Liste der Tags haben
Wie ich schon erwähnt, kann dies nicht logischen Sinn in Ihrem Design machen, aber ohne weitere Informationen, kann ich nicht sagen.
Es scheint, die meisten der Klassenbeziehungen sollten Sie Instanzen der Zusammensetzung sein erwähnen anstatt Vererbung. Sie können mehrere Implementierungsvererbung in Java nicht tun, aber Sie können mehrere Schnittstellen implementieren. Zusammensetzung nicht über diese Grenzen haben und ein Objekt Verweise auf andere Objekte (Zusammensetzung) unterschiedlicher (Mehrfach-) Klassen enthalten.