2010-10-06 65 views
5

我即将为我的项目创建一个User类。对于创建这样一个通常命名的类是否是不好的做法有任何意见?我可以使用特定于我的项目的前缀来补充它。Java“用户”类命名最佳实践?

+1

这个项目是否被其他项目用作图书馆(和用户将成为公共课程)? – Thilo 2010-10-06 04:22:40

+0

编号专有的网络项目。实际上,我非常愿意将用户保留为用户,但我们也有一个会话的另一个域概念。还没有得到它,但在那个命名上已经给我带来了胃灼热。 – Steve 2010-10-06 04:26:00

回答

3

这是packages的用途。

+2

那么你最终可能会导入两个包含“User”类的包。这可能会导致一些头痛。 – rkg 2010-10-06 04:14:08

+0

@Ravi,但如果这是一个问题,那么你可以通过完全限定的名称来引用这些类。 – 2010-10-06 04:14:51

+2

@迈克尔:这是真的,但我觉得它伤害了代码的可读性。 – rkg 2010-10-06 04:16:39

1

使用通用名称并不是一个坏习惯,除非您将类名描述为类的功能。请记住创建适当的包,可以更具体地定义您的类。

2

我会建议你必须在你的用户类中添加一个应用程序特定术语的前缀。 “用户”过于常见和模糊。你可能很容易使用具有“用户”类或接口的API。尽管最新的IDE使得重构代码变得相对容易,但如果你有一个特定于应用程序的“用户”类,它会更干净,更容易。

+0

我同意你的意见。当你有多个同名的类时,它开始变得混乱。 – 2010-10-06 04:38:45

0

您应该使用Java package s来避免名称冲突。使用通用名称没有任何问题,只需确保将其放入自己的包中即可。例如,你可以有以下结构:

com/ 
    yourwebsite/ 
     yourproject/ 
      userdata/ 
       User.java 

然后你开始文件 “User.java” 有:

package com.yourwebsite.yourproject.userdata; 

当你导入它,你可以使用:

import com.yourwebsite.yourproject.userdata.User; 
+1

我仍然建议人们不要将他们的类命名为“字符串”或“列表”或“集合”或“例外”或“连接”或“会话”。我对“用户”很好,如果仅仅因为它在其他地方不常用(在我目前的工作区中,有许多库,“com.sun.tools.internals ...”中只有一个,“org”中有一个.hsqldb“,你可能不会使用它们)。 – Thilo 2010-10-06 04:21:11

+0

@Thilo,是的,我当然不会使用已经在任何“java。*”或“javax。*”包中使用的名称,但是在撰写本文时,Java API中没有User类。 – 2010-10-06 04:27:29

1

为了清晰起见,我总是尝试使用普通名称(如User)。只要确定名称是从问题域和现有项目词汇表中抽取的。注意含糊不清,如果出现问题,请更改班级名称。具有自动重构支持的现代IDE使这一切变得简单。

+0

是的。在适当的包装中有正确的类名是正确的。像IntelliJ这样的IDE可以很好地支持搜索和导入类名 - 它甚至可以是自动的。 – Jayan 2010-10-06 04:43:05

0

此名称不太可能被任何公共API使用,所以应用程序可以使用它。