Jerarquía de clases compleja en Google AppEngine (Java)
-
11-09-2019 - |
Pregunta
¿Es posible tener varias clases que hereden/extiendan la misma clase en Google AppEngine con Java (GAE/J) para mis entidades (JDO)?Por ejemplo tengo:
- Contenido (clase abstracta)
- Curso
y luego mi Curso tendrá:
- Lista de vídeos que amplían el contenido.
- lista de libros
Al mismo tiempo
- El vídeo tiene una lista de etiquetas.
- El libro tiene una lista de etiquetas.
- El curso tiene una lista de etiquetas
¿Es posible hacerlo GAE?
Estoy haciendo algo similar a esto pero tengo muchos problemas.¿Hay algún ejemplo de este tipo de cosas?
Solución
Actualización basada en el nuevo título de la pregunta
Todavía no entiendo cuál es tu dificultad, pero lo intentaré.
Tu pregunta es
¿Es posible tener múltiples clases que hereden/extiendan la misma clase en Google Appengine con Java (Gae/J) para mis entidades
La respuesta es sí, ¿por qué no?No veo nada en tu pregunta que no se pueda hacer.¿Qué problema estás teniendo?
Estoy similar a esto, pero tengo tantos problemas.¿Hay algún ejemplo de este tipo de cosas?¿Cómo lo haces exactamente? No veo nada malo en la descripción que publicaste.
y solo para ayudarte, aquí tienes una forma de hacerlo:
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
}
Otros consejos
Voy a tomar un tiro en la oscuridad aquí basado en lo que usted ha mencionado:
- Poner la lista de etiquetas de contenido junto con los métodos de gestión
- vídeo, libros, y todo se puede extender Curso contenido (no sé si esto tiene sentido en el diseño)
- Curso puede contener Lista de vídeo y libros.
- Todos tendrán lista de etiquetas
Como he mencionado, esto puede no tener sentido lógico en su diseño, pero sin más información, no se puede decir.
Parece que la mayoría de las relaciones de clase que cabe destacar los casos de composición en lugar de herencia. No se puede hacer herencia múltiple aplicación en Java, pero se puede implementar múltiples interfaces. Composición no tiene estos límites y un objeto puede contener referencias a otros objetos (composición) de diferentes (múltiples) clases.