Java中"User"类的命名最佳实践是什么?

5

我即将为我的项目创建一个用户类。你认为是否不好的惯例来创建这样一个常见的类?我可以使用与我的项目特定前缀来补充它。


1
这个项目是否意味着要被其他项目用作库(User 是否将成为公共类)? - Thilo
不。这是一个专有的网络项目。我对将“User”保留为“User”感到非常舒适,但我们还有另一个域概念——会话。虽然我还没有开始处理它,但它的命名已经让我感到心烦意乱了。 - Steve
6个回答

3
这就是的用途。

2
你可能会导入两个包含“User”类的包。这可能会引起一些麻烦。 - rkg
@Ravi,但如果这是一个问题,那么您可以使用完整限定名称引用类。 - Michael Aaron Safyan
2
@Michael:确实如此,但我觉得这会损害代码的可读性。 - rkg

3

我建议你在User类前面添加一个应用程序特定的术语。"User"太常见和模糊了。你可能会轻易地使用到具有"User"类或接口的API。虽然最新的IDE使重构代码相对容易,但如果你有一个应用程序特定的"User"类,它会更加清晰和容易。


我同意你的观点。当你有多个同名类时,情况就会变得混乱不堪。 - Ankit Bansal

1

使用常见的名称并不是一种不好的做法,除非您将名称描述为类的功能。请记住创建适当的包,可以更具体地定义您的类。


1

我总是尽量使用常见的名称,例如“用户”以增加清晰度。但一定要确保这些名称来自问题域和现有项目词汇表。要警惕歧义,如果出现一个,就要更改类名。现代化的集成开发环境(IDE)具有自动重构支持,使得这一点变得容易。


是的。在适当的包中拥有正确的类名将是正确的做法。像IntelliJ这样的IDE非常支持搜索和导入类名 - 它甚至可以自动完成。 - Jayan

0

你应该使用Java的来避免名称冲突。使用常见名称并没有什么问题,只要确保将其放在自己的包中即可。例如,你可以有以下结构:

com/
  yourwebsite/
      yourproject/
            userdata/
                 User.java

你可以在文件“User.java”中开始编写以下内容:
package com.yourwebsite.yourproject.userdata;

当你导入它时,你会使用:

import com.yourwebsite.yourproject.userdata.User;

1
我仍然建议人们不要将他们的类命名为"String"、"List"、"Collection"、"Exception"、"Connection"或"Session"。如果只是因为它在其他地方不常用(在我的当前工作空间中,有许多库,只有一个在“com.sun.tools.internals…”中,另一个在“org.hsqldb”中,你可能不会使用),那么我对"User"这个名称还是可以接受的。 - Thilo
@Thilo,是的,我肯定不会使用已在任何“java.*”或“javax.*”软件包中使用的名称,但截至本文撰写时,在Java API中没有User类。 - Michael Aaron Safyan

0

这个名称不太可能被任何公共 API 使用,因此应用程序使用它是可以的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接