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

    [ Java ] Classi quasi identiche

    Salve a tutti, premetto che sono un newbie nella programmazione in Java. Studiando questo linguaggio mi sono trovato in questa situazione, in cui ho queste due classi:

    codice:
    public class Libri
    {
         private ArrayList<Libro> Libreria;
    
         /* Metodi per aggiungere, modificare o eliminare gli elementi dall'arraylist
             Metodo per esportare la lista in un file
             Metodo per importare la lista da un file
          */
    }
    
    public class Utenti
    {
         private ArrayList<Utenti> Registro;
    
         /* Metodi per aggiungere, modificare o eliminare gli elementi dall'arraylist
             Metodo per esportare la lista in un file
             Metodo per importare la lista da un file
          */
    }
    Visto che le due classi fanno le stesse identiche cose, solo che operano su oggetti differenti è possibile snellire il codice ?
    Valar morghulis... Valar dohaeris...

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    157
    si, con le classi generiche. http://www.cli.di.unipi.it/~bodei/CO...rici/main.html

    prova a vedere li.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [ Java ] Classi quasi identiche

    Originariamente inviato da noidhoon
    Visto che le due classi fanno le stesse identiche cose, solo che operano su oggetti differenti è possibile snellire il codice ?
    Mettiamola così: una classe Libri che dovrebbe solo "modellare" un insieme di libri, non dovrebbe avere metodi per l'I/O su file.

    Quindi a livello di design la cosa migliore sarebbe avere una classe Libri che rappresenta solo l'insieme dei libri e che fornisce solo metodi per operare su questo insieme, tipo es.: aggiungiLibro(Libro l), cercaLibroPerTitolo(String titolo), rimuoviLibro(Libro l), ecc....
    E poi avere una classe a parte es. IOLibri o eventualmente spezzare la cosa in due parti, una classe per la lettura e l'altra per la scrittura.

    Il tuo obiettivo non dovrebbe essere quello di scrivere meno righe di codice ma quello di cercare e usare il "design" migliore che segua il più possibile i principi della OOP.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    @andbin&cigiri18: Suddividendo il problema, come mi ha suggerito andbin ed utilizzando le classi generiche, come mi ha suggerito cigiri18, sta uscendo fuori una cosa stupenda Grazie per i consigli vi devo un favore
    Valar morghulis... Valar dohaeris...

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.