我应该在方法名中使用“get”-prefix吗?

我应该在方法名中使用“get”-prefix吗?

问题描述:

我有这个抽象类用作数据存储库。我应该在方法名中使用“get”-prefix吗?

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

更具体的类(即该类的子类)实现用于不同数据源的方法,例如, CSV,ARFF等格式。

我想知道“get” - 关键字在这里是否合适,因为数据检索不仅仅是返回一个变量,还可能需要文件系统访问或任何其他。

所以我应该使用“get”-prefix或不?

感谢

+0

我推荐使用'retrieve',因为这表示比刚刚获得值更复杂的事情正在发生 –

+0

我喜欢这个例子的检索。 – AHungerArtist

我同意使用get关键字可以有时似乎不直观的,当有背后真正的逻辑。在你的情况lookupfind前缀可能是很好的替代品。还有@Thomas建议的retrieve

这个问题最初看起来可能与主题无关。但至少对我而言,命名是良好应用程序设计的一个组成部分。

+0

+1。不仅仅是真实的逻辑,而且也是引发异常的真正机会。 – ruakh

+0

布尔型getters怎么样?什么使用,而不是is-前缀? – user2340939

+0

如何计算属性,如'List'中的大小?它没有'get'前缀。 – EliuX

您是否想将此方法设置为bean getter,因此您可以将它与BeanUtils这样的东西一起使用?鉴于它正在执行繁重的I/O和一些逻辑,可能不会,所以我将以不同的名称命名。