Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    511

    Come effettuare il refactoring di un software per la gestione di una videoteca

    Buongiorno a tutti!

    Vorrei effettuare il refactoring, se è necessario, di un software che gestisce una videoteca.
    Il codice è il seguente:

    codice:
    public class DomainObject {
    
    
        public DomainObject (String name)    {
            this.name = name;
        };
    
    
        public DomainObject() {};
    
    
        public String name() {
            return name;
        };
    
    
        public String toString() {
            return name;
        };
    
    
        protected String name = "no name";
    }
    
    
    public class Registrar {
    
    
        public Object get(String object, String name) {
            // do something here
        }
        
        public void add(String object, String name) {
            // do something here
        }
    
    
    }
    
    
    public class Movie extends DomainObject {
    
    
        public static final int  CHILDRENS = 2;
        public static final int  REGULAR = 0;
        public static final int  NEW_RELEASE = 1;
    
    
        private int priceCode;
    
    
        public Movie(String name, int priceCode) {
            this.name = name;
            this.priceCode = priceCode;
        }
    
    
        public int priceCode() {
            return priceCode;
        }
    
    
        public void persist() {
            Registrar.add("Movies", this);
        }
    
    
        public static Movie get(String name) {
            return (Movie) Registrar.get("Movies", name);
        }
    }
    Un grazie a chi voglia aiutarmi.
    tulipan

  2. #2
    Quote Originariamente inviata da tulipan Visualizza il messaggio
    Vorrei effettuare il refactoring, se è necessario, di un software che gestisce una videoteca.
    Refactoring in che senso e per fare cosa?? Refactoring significa cambiare il codice (opportunamente togliendo, modificando, spostando, ecc...) senza cambiare il comportamento a livello funzionale. Il punto è che quel codice è sbagliato e comunque incompleto.

    Tanto per dirne alcune: che dovrebbe fare Registrar? Lo vedo di fatto "vuoto". Poi in Movie invochi Registrar.add("Movies", this); come se fosse un metodo statico (lo invochi sul nome della classe infatti) MA add è un metodo "di istanza". Poi gli passi String,Movie ma il metodo add accetta String,String.
    In pratica non funziona nulla né ha senso. Quindi?
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    511
    Vorrei che il codice fosse più orientato agli oggetti.
    La classe Registrar è la classe che fa le query verso il db e le insert, tramite i metodi get() e add().

    Grazie, comunque.
    tulipan
    Ultima modifica di tulipan; 05-05-2021 a 09:45

  4. #4
    Quote Originariamente inviata da tulipan Visualizza il messaggio
    La classe Registrar è la classe che fa le query verso il db e le insert, tramite i metodi get() e add().
    Ma non è così che si fa uno strato per l'accesso al db con un get/add piazzati lì così in quel modo .....

    Chiarisci meglio magari il contesto: che tipo di applicazione è? (console, desktop, webapp) che database viene usato? (relazione: MySQL/PostgreSQL/ecc.. ; non relazionale ...)
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

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