Complesso Gerarchia delle classi in Google AppEngine (Java)
-
11-09-2019 - |
Domanda
E 'possibile avere più classi che ereditano / estende stessa classe in Google AppEngine con Java (GAE / J) per le mie entità (JDO). Per esempio io ho:
- Contenuto (classe astratta)
- Corso
e poi il mio corso avrà:
- Elenco dei video che è si estende Content
- elenco di libri
Allo stesso tempo
- Il video ha la lista dei tag
- libro della lista dei tag
- Corso ha l'elenco dei Tag
E 'possibile farlo GAE?
che sto facendo simile a questo ma avendo così tanto problemi. C'è qualche esempi di questo genere di cose?
Soluzione
Aggiornamento sulla base di nuove titolo di domanda
Ancora non capisco che cosa il vostro difficoltà è, ma mi darà un colpo
La tua domanda è
E 'possibile avere più classi che ereditano / estende stesso di classe in Google AppEngine con Java (GAE / J) per i miei soggetti
La risposta è sì, perché no? Non vedo nulla nel vostro domanda che non può essere fatto. Quale problema stai avendo?
che sto facendo simile a questo ma avendo tanto problemi. C'è qualche esempi di questo genere di cose? Come stai facendo esattamente, perché non riesco a vedere niente di sbagliato con la descrizione che hai postato.
e solo per dare una mano, qui è un modo che può essere fatto,
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
}
Altri suggerimenti
mi prendo un salto nel buio qui sulla base di ciò che lei ha citato:
- Mettere la lista di tag in Content insieme a metodi di gestione
- Video, Libri, e del corso possono tutti estendere i contenuti (non so se questo ha un senso nella progettazione)
- Corso può contenere Elenco dei video e libri.
- Tutti avranno elenco dei tag
Come ho già detto, questo non può avere senso logico nel vostro disegno, ma senza ulteriori informazioni, non posso dire.
Sembra che la maggior parte dei rapporti di classe si va segnalato casi di composizione piuttosto che eredità. Non si può fare l'ereditarietà multipla implementazione in Java, ma è possibile implementare interfacce multiple. Composizione non ha questi limiti e un oggetto può contenere riferimenti ad altri oggetti (composizione) di diversi (multiple) classi.