2011-12-13 17 views
8

Ho questa classe astratta che viene utilizzata come archivio dati.Devo usare "get" -prefix nel nome del mio metodo?

public abstract class AbstractDataSource { 
    public abstract DataRow getDataRow(Key key); //or just dataRow(Key key)??? 
} 

public class CSVDataSource extends AbstractDataSource { 
    @Override 
    public DataRow getDataRow(Key key) { //or just dataRow(Key key)?? 
     //fetch row from file and return dataRow 
     //.... 
     return dataRow; 
    } 
} 

Altre classi specifiche (cioè sottoclassi di questa classe) implementare metodi di differente origine dati, ad esempio CSV, ARFF e altri formati.

Mi chiedevo se la parola chiave "get" è appropriata qui, poiché il recupero dei dati non sta solo restituendo una variabile, ma potrebbe anche richiedere l'accesso al filesystem o qualsiasi altra cosa.

Quindi dovrei usare il prefisso "get" o no?

Grazie

+0

Si consiglia di utilizzare 'recupera' poiché questo indica che sta accadendo qualcosa di più complesso di un semplice valore –

+0

Mi piace recuperare per questo esempio. – AHungerArtist

risposta

9

Sono d'accordo che usando la parola chiave get a volte può sembrare non intuitivo quando c'è vera logica dietro. Nel tuo caso i prefissi lookup o find potrebbero essere dei buoni sostituenti. C'è anche retrieve come suggerito da @Thomas.

Questa domanda potrebbe sembrare fuori tema in un primo momento. Ma nominare è, almeno per me, parte integrante della buona progettazione dell'applicazione.

+0

+1. Non solo logica reale, ma anche reale possibilità di generare un'eccezione. – ruakh

+0

Che dire dei getter booleani? Cosa usare al posto di is-prefix? – user2340939

+0

Che dire delle proprietà calcolate come la dimensione in 'List'? Non ha un prefisso 'get'. – EliuX

2

Vuoi che questo metodo sia un bean getter, quindi puoi utilizzarlo con cose come BeanUtils? Dato che sta facendo un pesante I/O e qualche logica, probabilmente no, quindi lo chiamerei diversamente.

Problemi correlati