Java 使用集合接口名作为变量名的一部分是否是一种良好的做法?
我知道使用体贴是一种不好的做法 但是,当我们处理集合时,使用集合接口名作为变量名的一部分是一种不好的做法Java 使用集合接口名作为变量名的一部分是否是一种良好的做法?,java,Java,我知道使用体贴是一种不好的做法 但是,当我们处理集合时,使用集合接口名作为变量名的一部分是一种不好的做法 例1: List<Student> listStudents; //or List<Student> studentsList; List<Student> listStudents; **NO** 列出学生名单; //或 列出学生名单; 对 List<Student> students; Map<Integer,
- 例1:
List<Student> listStudents; //or List<Student> studentsList;
List<Student> listStudents; **NO**
对列出学生名单; //或 列出学生名单;
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
列出学生名单;
- 例2:
Map<Integer, Student> mapStudents; //or Map<Integer, Student> studentsMap;
Map<Integer, Student> studentsByID; **YES**
对Map学生; //或 地图学生地图;
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
Map学生;
- 例3:
Set<Student> setStudents; //or Set<Student> studentsSet
Set<Student> specialNeedsStudents; **YES**
对设置学生; //或 集合学生集合
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
Set学生;
有很多工具可以告诉您变量的类型,而无需查找定义,这使得这些信息变得多余 我想说,将集合的名称添加到变量名通常被认为是一种不好的做法
有很多工具可以告诉您变量的类型,而无需查找定义,这使得这些信息变得多余 如果您更仔细地选择名称,您通常会发现,如果您正确地描述集合的功能,而不是它是什么,您会发现这要容易得多
- 例1:
List<Student> listStudents; //or List<Student> studentsList;
List<Student> listStudents; **NO**
对列出学生名单**没有**
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
列出所有学生**对**
- 例2:
Map<Integer, Student> mapStudents; //or Map<Integer, Student> studentsMap;
Map<Integer, Student> studentsByID; **YES**
对Map studentsByID**是**
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
Map学生**没有**
- 例3:
Set<Student> setStudents; //or Set<Student> studentsSet
Set<Student> specialNeedsStudents; **YES**
对设置特殊需求学生**对**
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
Set学生**没有**
- 例1:
List<Student> listStudents; //or List<Student> studentsList;
List<Student> listStudents; **NO**
对列出学生名单**没有**
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
列出所有学生**对**
- 例2:
Map<Integer, Student> mapStudents; //or Map<Integer, Student> studentsMap;
Map<Integer, Student> studentsByID; **YES**
对Map studentsByID**是**
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
Map学生**没有**
- 例3:
Set<Student> setStudents; //or Set<Student> studentsSet
Set<Student> specialNeedsStudents; **YES**
对设置特殊需求学生**对**
List<Student> students;
Map<Integer, Student> students;
Set<Student> students;
List<Student> allStudents; **YES**
Map<Integer, Student> students; **NO**
Set<Student> students; **NO**
Set学生**没有**
studentList
,studentSet
,studentMap
。无论如何,作为一种意见,答案通常是“否”,除非您能确切说明为什么需要将集合类型添加到名称中。如果您不能给出具体原因,那么默认情况下应该使用students
。请参阅……显然,如果在同一个/嵌套范围内有一个集合和一个映射,那么您需要有不同的名称,因此,您可以向名称添加…Set
和…Map
。我的意见是,您应该避免向变量名称添加与其在系统中的用途无关的任何内容。特别是当集合的实际类型是要封装的内部实现细节时。但是如果你的名字在其他方面很好(见@OldCurmudgeon的答案),那么在名字后面附加一个不必要的…List
或…Map
并不是世界末日。我会专注于正确使用基本名称,因为这确实会在可读性方面产生巨大的差异。这完全是基于观点的,因此与主题无关。事实上,非常基于观点,但您正在模糊选项学生列表
,学生集
,学生地图
。无论如何,作为一种意见,答案通常是“否”,除非您能确切说明为什么需要将集合类型添加到名称中。如果您不能给出具体原因,那么默认情况下应该使用students
。请参阅……显然,如果在同一个/嵌套范围内有一个集合和一个映射,那么您需要有不同的名称,因此,您可以向名称添加…Set
和…Map
。我的意见是,您应该避免向变量名称添加与其在系统中的用途无关的任何内容。特别是当集合的实际类型是要封装的内部实现细节时。但是如果你的名字在其他方面很好(见@OldCurmudgeon的答案),那么在名字后面附加一个不必要的…List
或…Map
并不是世界末日。我会把注意力集中在正确使用基本名称上,因为这确实会对可读性产生巨大影响。