我有一个对许多人来说似乎很微不足道的问题,但是这个问题让我反复思考我写的代码的可读性。
让我们假设我有一个类,它封装了一个名为EmployeeDetails
的实体的详细信息,例如员工。 (注意 - 我还有一个名为Employee
的类,它存在于DAO层。我不想从我的服务方法返回任何DAO级别的类,这就是我创建EmployeeDetails
类的原因。从我的服务层方法返回。我还希望通过保持服务和DAO层类名不同来避免类名之间的混淆。)
我还有一个服务级别方法,给定一个员工编号列表,返回List<EmployeeDetails>
。我的问题是 - 命名返回变量的最佳编码约定是什么?我有两个选择。
employeeDtls
- 我不喜欢这样,因为阅读我的代码的人可能认为“employeeDtls”指的是EmployeeDetails
的实例,而不是列表。employeeDtlsList
- 我不喜欢这样,因为它似乎“太罗嗦了”。是否有人遵循变量的任何特定编码约定?列表变量使用最广泛的命名约定是什么?
答案 0 :(得分:1)
我通常为所有方法命名返回变量result
:
List<EmployeeDetails> result;
原因很明显,我添加的列表很明显,并且要返回它的锣,特别是如果方法中有多个列表。
这也符合良好的做法,通过为它们所代表的东西命名,而不是它们是什么。您的想法有点像将{int}变量命名为intVariable
。简单地命名result
意味着您可以更改结果的类型,例如更改为Set<EmployeeDetails>
而无需重构名称。
答案 1 :(得分:1)
嗯......让我们考虑一下我们在这里建模的内容。
一般的经验法则是,如果它是一个集合,那么它应该是多元化的,并且范围是你期望的内容。
因此,这会使您的变量名为List<EmployeeDetails> details
或List<EmployeeDetails> employees
。如果你可以帮助它,尽量避免使用复合名称,除非它真实而具体地代表你正在回归的东西。
如果您使用的是Data Transfer Object模型,并且您已将其命名为EmployeeDto
,那么变量的名称将更具体在employees
,就像您一样期待一些某事的集合代表Employee
(在其核心)。
答案 2 :(得分:1)
我宁愿打电话给班级EmployeeDetail
,所以它是一个单数名词,代表&#34;详细信息&#34;一名员工。
然后,变量命名将直接用于其集合:employeeDetails
如果我真的遇到以复数形式命名的类(我通常会尽量避免),我通常使用~List
作为此类型集合的变量名。虽然它有点过于冗长,但至少它不会造成任何混淆。
答案 3 :(得分:-2)