Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371

    eliminare libro da libreria

    scusate il titolo ma non saprei proprio che altro titolo usare

    sto sviluppando un progetto in java in cui sono presenti alcune librerie, un attore e i vari libri
    le classi sono Attore, Libreria, Libri

    in pratica devo permettere all'attore controllato dall'utente di poter prendere dei libri aggiungendoli cosi all'inventario, posarli in una libreria, leggerne il contenuto e spostarsi da una libreria all'altra

    sembrava funzionare tutto quando mi sono accorto che una volta preso un libro questo viene aggiunto all'inventario ma risulta anche ancora sulla libreria...

    io ho inserito il metodo prendi() fra quelli presenti nella classe Attore, ma a chi dovrei dare il compito di eliminare il libro dalla libreria? in teoria per la classe Attore la libreria potrebbe anche non esistere in quanto potrebbe prendere il libro ovunque, quindi chi si dovrebbe occupare di questo compito? credo debba essere la classe Libreria, ma come fa ad accorgersi che un libro è stato preso?

    sto diventato scemo...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    mi sono accorto ora di aver inserito la discussione in java, mentre qui si parla di programmazione ad oggetti in generale

    se qualche moderatore legge e sposta mi farebbe un grandissimo favore

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    La libreria è costituita da un elenco di libri e dovrebbe avere funzionalità per prelevare un libro e rimetterlo a posto. Funzionalità proprie della Libreria.

    L'attore maneggia i libri attraverso le funzionalità messe a disposizione dalla libreria. Per esempio nello specifico potrebbe:

    - Consultare l'elenco dei libri
    - Prelevare un libro
    - Aggiungere un libro

    Queste possibilità vengono messe a disposizione alla classe attore dalla classe Libreria. In pseudocodice per rispondere alla tua domanda io farei piu o meno cosi.

    in Attore:
    codice:
    public Libro Libro {get; set;} //non ti allarmare è una sintassi c# per dichiarare velocemente le proprietà in una classe :)
    
    public void Prendi(int id)
    {
      this.Libro = Libreria.Get(id);
    }
    
    public void Consegna()
    {
      Libreria.Put(this.Libro);
      this.Libro = null;
    }
    in Libreria
    codice:
    private Libro[] Elenco; //l'elenco dei libri della libreria
    
    public void Get(int id)
    {
      libro = Elenco[id]; //recupero il libro;
      Elenco[id] = null; //in un qualche modo implementi l'eliminazione del libro dalla lista interna.
      return libro;
    }
    
    public void Put(Libro libro)
    {
      Elenco[id] = libro; //in un qualche modo implementi l'inserimento del libro nella lista interna
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    ok, è cosi che infatti avevo pensato di procedere ma poi ho pensato
    se volessi aggiungere la classe Tavolo e la possibilità di prendere e posare un libro su un tavolo?
    dovrei a quel punto aggiungere un metodo apposito per prendere un libro dal tavolo e posarlo sul tavolo... o sbaglio?

  5. #5
    Perchè allora non creare una Interfaccia comune "Raccoglitore/Contenitore" ( non so che nome dargli) in cui dichiarare appunto le interfacce dei metodi comuni a tutti quegli oggetti che possono contenere/dare libri ?

  6. #6
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Originariamente inviato da davidinho
    ok, è cosi che infatti avevo pensato di procedere ma poi ho pensato
    se volessi aggiungere la classe Tavolo e la possibilità di prendere e posare un libro su un tavolo?
    dovrei a quel punto aggiungere un metodo apposito per prendere un libro dal tavolo e posarlo sul tavolo... o sbaglio?
    risposta breve: si

    e come dice sopra francesco.muia, ti accorgerai ben presto che tutte queste classi che rappresentano elenchi di oggetti hanno delle funzionalità comuni (aggiungi, rimuovi, ecc.) che potresti estrarre in un interfaccia per poi implementare quest'ultima all'occorrenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    ok, grazie mille per i consigli

    più passa il tempo e più mi rendo conto che i libri sono quali inutili, danno le basi, poi si impara tutto con l'esperienza...

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    no no ti assicuro che i libri non sono inutili, ma affiancano la pratica. L'esperienza ti serve a capire come trarre vantaggio da quello che hai acquisito leggendo i libri
    RTFM Read That F*** Manual!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    Originariamente inviato da valia
    no no ti assicuro che i libri non sono inutili, ma affiancano la pratica. L'esperienza ti serve a capire come trarre vantaggio da quello che hai acquisito leggendo i libri
    vabbè, inutili era per dire, di certo senza le basi neanche si parte

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma anche dal resto, quello che qui ti stanno facendo notare è come usare l'ereditarietà e le gerarchie di classi a tuo vantaggio, riusando al massimo il codice.
    Non sto a farti l'elenco di quanti altri concetti applichi facendo quello che ti hanno detto (si parla di polimorfismo, poi passi al principio di programmazione per interfaccia ecc), ma sono tutte robe che leggi sui libri
    RTFM Read That F*** Manual!!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.