Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Scaffale di una biblioteca] Selezione tipo prodotto

    Ciao a tutti.

    Sto sviluppando un applicazione desktop in java per la gestione di una biblioteca.
    Uno scaffale ha un insieme di prodotti (che possono essere dvd, riviste, libri ecc..), vorrei fare in modo che il bibliotecario possa scegliere il tipo di prodotti che uno scaffale può contenere. Ad esempio lo scaffale può contenere solo libri oppure libri e dvd oppure solo riviste ecc..

    Parlando in codice: ho una classe "Scaffale" che ha come campo una lista di prodotti. Le classi "Dvd", "Libro" naturalmente sono sottoclassi della classe "Prodotto".

    Io avevo pensato di fare un array di booleani dentro la classe scaffale: ogni cella corrisponde a un tipo prodotto, se è true allora il tipo è accettato.

    Questa soluzione non mi piace molto. Sono sicuro che esista qualcosa di meglio.

    Qualcuno ha idee migliori?

  2. #2

    Re: [Scaffale di una biblioteca] Selezione tipo prodotto

    Originariamente inviato da bravemouse
    Ciao a tutti.

    Sto sviluppando un applicazione desktop in java per la gestione di una biblioteca.
    Uno scaffale ha un insieme di prodotti (che possono essere dvd, riviste, libri ecc..), vorrei fare in modo che il bibliotecario possa scegliere il tipo di prodotti che uno scaffale può contenere. Ad esempio lo scaffale può contenere solo libri oppure libri e dvd oppure solo riviste ecc..

    Parlando in codice: ho una classe "Scaffale" che ha come campo una lista di prodotti. Le classi "Dvd", "Libro" naturalmente sono sottoclassi della classe "Prodotto".

    Io avevo pensato di fare un array di booleani dentro la classe scaffale: ogni cella corrisponde a un tipo prodotto, se è true allora il tipo è accettato.

    Questa soluzione non mi piace molto. Sono sicuro che esista qualcosa di meglio.

    Qualcuno ha idee migliori?
    Potresti introdurre nella classe Scaffale una seconda lista:
    codice:
    private List<Class> tipiConsentiti;
    che quindi indica i tipi di prodotti consentiti in quello scaffale.

  3. #3
    Sembra meglio dell'array di booleani, ma l'idea è sempre quella cioè io dopo dovrò prendere la lista dei tipi consentiti e verificare se è presente il tipo del prodotto che sto per inserire o sbaglio??

    Il problema non è tanto quando creo uno scaffale (che quindi gli dico i tipi), ma quando lo modifico. Ad esempio se in uno scaffale ho già inserito dei libri e poi tolgo il tipo "Libro" da quelli consentiti, mi tocca fare una ricerca per trovare tutti gli oggetti di quel tipo ed eliminarli dallo scaffale.

    Speravo che esistesse qualcosa di più fico (reflection forse?) che automaticamente mi elimina i prodotti del tipo che ora non è più consentito. Non so se mi avete capito..:P

  4. #4
    Originariamente inviato da bravemouse
    Il problema non è tanto quando creo uno scaffale (che quindi gli dico i tipi), ma quando lo modifico. Ad esempio se in uno scaffale ho già inserito dei libri e poi tolgo il tipo "Libro" da quelli consentiti, mi tocca fare una ricerca per trovare tutti gli oggetti di quel tipo ed eliminarli dallo scaffale.
    Beh nel post precedente hai parlato solo di contenimento, non di modifica.
    Comunque si è possibile farlo anche non usando le liste.
    Originariamente inviato da bravemouse
    Speravo che esistesse qualcosa di più fico (reflection forse?)
    Quindi, secondo te Class non fa parte della RTTI? Ti sbagli...

  5. #5
    Originariamente inviato da VincenzoTheBest
    Beh nel post precedente hai parlato solo di contenimento, non di modifica.
    Comunque si è possibile farlo anche non usando le liste.
    E come?

    Originariamente inviato da VincenzoTheBest
    Quindi, secondo te Class non fa parte della RTTI? Ti sbagli...
    Nel senso che la reflection credo sia la strada giusta (anche se non la conosco molto bene), ma non usata cosi in una List<Class>.

  6. #6
    Originariamente inviato da bravemouse
    ma non usata cosi in una List<Class>.
    Hai n sotto-tipi...con una lista eviti di utilizzare ad esempio il costrutto instanceof.
    Quindi hai già una buona soluzione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.