假设有一个类库存
class Stock
{
String id;
String name;
}
我想创建两个比较器,分别按id
和name
进行比较。
Java中的比较器是否有命名约定或最佳实践?
以下姓名是否正常?
StockByIdComparator
和StockByNameComparator
SortStockById
和SortStockByName
我知道在某些方面可以避免使用冗余名称。人们会选择
List<Stock> stocks
超过List<Stock> stockList
。另外,类型不应该用变量名编码(可能是因为IDE的兴起?)。但也有清晰的重要方面。
那么命名比较器的好方法是什么?
答案 0 :(得分:4)
就我个人而言,我会将其命名为StockByIdComparator
和StockByNameComparator
它可能看起来有点多余但很明显,因为每个Java开发人员都知道Comparator
是什么。
我更喜欢SortStockById
和SortStockByName
它们看起来像方法名称:以动词开头,然后是补语。
我无法知道这些是Comparator
实施。
我不认为选择与Comparator
界面相关联的名称是一个问题或错误的命名策略。
相反,它是一个接口,它构成了Java基础API的一部分。
答案 1 :(得分:2)
如果你把它们创建为一个类,我会在那里包含Comparator
class StockByIdComparator implements Comparator<Stock> {}
如果要将其创建为变量或常量 - 可以跳过它
static final Comparator<Stock> COMPARE_BY_ID = new Comparator<Stock>() {}
所以看起来像这样
Collections.sort(stocks, COMPARE_BY_ID);
答案 2 :(得分:0)
StockByIdComparator
和StockByNameComparator
都可以,因为它们描述了这些类的用途。但我会将它们分别命名为StockComparatorById
和StockComparatorByName
,因此它们将具有一个通用前缀。因此,将来您可以轻松找到所有StockComparator*
。
基本上,没有任何最佳实践来命名比较器或其他接口实现。好的方法是选择描述性而不是很长的名称,并将此名称与“所有代码”一起保留。“