Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    ciao andbin!

    step by step.

    allora, mi sono documentato sul pattern Template.
    questo prevede una classe astratta, che nel mio caso dovrebbe fare una cosa del genere se ho ben capito:
    codice:
    public abstract class ParserTemplate {
    
        // INIZIALIZZO LE PARTI "COMUNI"
        abstract void initialize();
        
        // PRENDO I METADATA
        abstract String getMetadata();
    
        // PRENDO IL CONTENUTO
        abstract String getContent();
    
        public final void init() {
            initialize();
            getMetadata();
            getContent();
        }
    }
    poi ci sono delle classi concrete che estendono quella classe astratta.
    che dovrebbero essere i miei parser, tipo:
    codice:
    public class RTFParser extends ParserTemplate {
    
        @Override
        void initialize() {
            
        }
    
        @Override
        String getMetadata() {
            
        }
    
        @Override
        String getContent() {
            
        }
    
    }
    quante catronerie ho detto??

    per quanto riguarda il FileParserRegistry, non ho ben capito.
    utilizza un altro pattern sul quale posso documentarmi?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    allora, mi sono documentato sul pattern Template.
    questo prevede una classe astratta, che nel mio caso dovrebbe fare una cosa del genere se ho ben capito:
    quante catronerie ho detto??
    Partiamo dall'uso "ipotetico" che ho detto prima, cioè:

    codice:
    FileParser fileParser = ..........
    FileParseResult result = fileParser.parse(file);

    FileParser potrebbe essere una classe astratta così:

    codice:
    public abstract class FileParser {
        public final FileParseResult parse(File file) {
            // algoritmo ....
        }
    }

    Dentro parse c'è tutto l'algoritmo di parsing. Quello che è comune va lì dentro. La/e fase/i che invece devono/possono essere ridefinite in una sottoclasse vanno fatte con un metodo apposito (tipicamente protected) in modo che una sottoclasse deve/può ridefinirlo.

    Dico in genere "deve/può" perché una fase potrebbe essere obbligatorio oppure opzionale ridefinirla.

    Quote Originariamente inviata da fermat Visualizza il messaggio
    per quanto riguarda il FileParserRegistry, non ho ben capito.
    utilizza un altro pattern sul quale posso documentarmi?
    No, non è un "pattern". Sarebbe una semplice classe che contiene un Map<String,FileParser> in cui puoi aggiungere le associazioni e poi poter estrarre un FileParser per il tipo. Tutto qua.
    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.