List变量的命名约定

时间:2014-03-20 03:00:50

标签: java naming-conventions

我有一个对许多人来说似乎很微不足道的问题,但是这个问题让我反复思考我写的代码的可读性。

让我们假设我有一个类,它封装了一个名为EmployeeDetails的实体的详细信息,例如员工。 (注意 - 我还有一个名为Employee的类,它存在于DAO层。我不想从我的服务方法返回任何DAO级别的类,这就是我创建EmployeeDetails类的原因。从我的服务层方法返回。我还希望通过保持服务和DAO层类名不同来避免类名之间的混淆。)

我还有一个服务级别方法,给定一个员工编号列表,返回List<EmployeeDetails>。我的问题是 - 命名返回变量的最佳编码约定是什么?我有两个选择。

  1. employeeDtls - 我不喜欢这样,因为阅读我的代码的人可能认为“employeeDtls”指的是EmployeeDetails的实例,而不是列表。
  2. employeeDtlsList - 我不喜欢这样,因为它似乎“太罗嗦了”。
  3. 是否有人遵循变量的任何特定编码约定?列表变量使用最广泛的命名约定是什么?

4 个答案:

答案 0 :(得分:1)

我通常为所有方法命名返回变量result

List<EmployeeDetails> result;

原因很明显,我添加的列表很明显,并且要返回它的锣,特别是如果方法中有多个列表。

这也符合良好的做法,通过为它们所代表的东西命名,而不是它们是什么。您的想法有点像将{int}变量命名为intVariable。简单地命名result意味着您可以更改结果的类型,例如更改为Set<EmployeeDetails>而无需重构名称。

答案 1 :(得分:1)

嗯......让我们考虑一下我们在这里建模的内容。

一般的经验法则是,如果它是一个集合,那么它应该是多元化的,并且范围是你期望的内容。

因此,这会使您的变量名为List<EmployeeDetails> detailsList<EmployeeDetails> employees。如果你可以帮助它,尽量避免使用复合名称,除非它真实而具体地代表你正在回归的东西。

如果您使用的是Data Transfer Object模型,并且您已将其命名为EmployeeDto,那么变量的名称将更具体在employees,就像您一样期待一些某事的集合代表Employee(在其核心)。

答案 2 :(得分:1)

我宁愿打电话给班级EmployeeDetail,所以它是一个单数名词,代表&#34;详细信息&#34;一名员工。

然后,变量命名将直接用于其集合:employeeDetails

如果我真的遇到以复数形式命名的类(我通常会尽量避免),我通常使用~List作为此类型集合的变量名。虽然它有点过于冗长,但至少它不会造成任何混淆。

答案 3 :(得分:-2)

使用DTO (Data Transfer Object)模式来传递基础实体的数据。

在您的情况下,EmployeeDetails应为EmployeeDTO

查看讨论here