Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Trento
    Messaggi
    13
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Si può fare di meglio.
    potresti farmi un esempio di cosa cambieresti? ed e lecito usare li metodi nel costruttore?
    potresti dirmi qualcosa anche su punti
    3- Si può fare in un altro modo (più efficente, o corretto) il metodo toString, magari utilizzando meglio gli if?
    Ho usato il String.format
    4- Qui il problema sta nella leggibilità del codice, in seguito alle condizioni, come posso migliorarlo o renderlo più leggibile??

    Ti ringrazio
    Ultima modifica di megaorso; 24-11-2016 a 20:58

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da megaorso Visualizza il messaggio
    potresti farmi un esempio di cosa cambieresti?
    Ho un po' di tempo stasera, vediamo i due punti importanti della classe per l'orario:
    1) Deve essere "mutabile" (cioè ci sono i metodi "setter" per cambiare lo stato dell'oggetto)
    2) Un qualunque tentativo di modifica con un valore errato, deve lasciare l'oggetto nello stato che aveva prima, attenzione, non metterlo a 0:00:00 (questo è il punto 4 "ovvero viene ripristinato l’ultimo orario valido"). In realtà non serve "ripristinare" nulla ... semplicemente basta non toccare lo stato se un valore è inappropriato.

    Quindi, siccome ciascun setter setOre/setMinuti/setSecondi cambia solo una variabile, io farei così:

    a) innanzitutto dei metodi privati (e statici) per il controllo di ciascun valore

    private static boolean oreValide(int ore)
    private static boolean minutiValidi(int minuti)
    private static boolean secondiValidi(int secondi)

    questi verificano il parametro e restituiscono true (=ok) o false.

    b) ciascun setter setOre/setMinuti/setSecondi PRIMA usa il metodo di test del rispettivo valore e POI solo se ok cambia la variabile di istanza dell'oggetto.

    c) per i costruttori è un pelino più lungo perché ci sono più valori. Nel costruttore più completo (quello con ore/minuti/secondi) userei i tre metodi di test dei valori. Se tutti danno ok, allora imposto lo stato, altrimenti resta tutto a 0 (che è appropriato secondo la richiesta).
    Per quello con solo ore/minuti, uso solo due metodi di test in modo simile all'altro. Come alternativa invoco quello completo passando 0 come secondi.
    Per quello senza argomenti, basta lasciare i valori di default predefiniti, che danno appunto 0:00:00
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.