2011-12-13 8 views
8

Tengo esta clase abstracta que se usa como depósito de datos.¿Debo usar "get" -prefix en el nombre de mi método?

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; 
    } 
} 

Las clases más específicas (es decir, las subclases de esta clase) implementan métodos para diferentes fuentes de datos, p. CSV, ARFF y otros formatos.

Me preguntaba si la palabra clave "get" es apropiada aquí, ya que la recuperación de datos no solo devuelve una variable, sino que también podría requerir el acceso al sistema de archivos o cualquier otra.

¿Debo usar el "get" -prefix o no?

Gracias

+0

Recomiendo usar 'retrieve' ya que esto indica que algo más complejo está sucediendo que solo obtener un valor –

+0

Me gusta recuperar para este ejemplo. – AHungerArtist

Respuesta

9

estoy de acuerdo que el uso de la palabra clave get veces puede parecer no intuitivo cuando hay verdadera lógica detrás. En su caso, los prefijos lookup o find podrían ser buenos sustituyentes. También hay retrieve según lo sugerido por @Thomas.

Esta pregunta puede parecer fuera de tema al principio. Pero nombrar es, al menos para mí, una parte integral del buen diseño de la aplicación.

+0

+1. No solo la lógica real, sino también la posibilidad real de plantear una excepción. – ruakh

+0

¿Qué hay de getters booleanos? ¿Qué usar en lugar de is- prefix? – user2340939

+0

¿Qué pasa con las propiedades calculadas como el tamaño en la 'Lista'? No tiene un prefijo 'get'. – EliuX

2

¿Desea que este método sea bean getter, por lo que puede usarlo con cosas como BeanUtils? Dado que está haciendo E/S pesadas y algo de lógica, probablemente no, así que lo nombraría de manera diferente.

Cuestiones relacionadas