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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top