Java类名称应该重复包名吗?

ami*_*mik 13 java naming-conventions

我正在考虑以下案例中Java的最佳实践:

我的程序中有一个逻辑,我想放在一个单独的包中.

例如(我目前的情况),它是一个逻辑,将收集一些统计信息,然后将它们发送到服务器).因此,我的项目com.example.project下的包将命名为com.example.project.statistics.

包中会有一些类,在本例中是StatisticsDispatcher(基本上是事件的容器和管理器)和StatisticsEvent(应该计算成统计信息的事件).

问题是,我应该使用什么命名约定?我看到两个选择:

  1. StatisticsDispatcherStatisticsEvent如上所述.类名清楚地说明了类的作用,但绝对名称有点模棱两可,比如com.example.project.statistics.StatisticsEvent.
  2. 调度员事件.它更短,并且类的目的从其绝对名称清楚,如com.example.project.statistics.Dispatcher,但稍后在代码中这些名称可能与其他包的类不明确,即使不是,当我在文件的开头导入这些类,像"Dispatcher"和"Event"这样的类名是非常通用的,在文件的中间,它们与它们有什么关系并不明显.

在google搜索java包和类命名约定时,我没有发现任何关于这一点.我担心第一个选项是正确的,但我真的不喜欢包名和类名的含糊不清,所以我想问你,其他程序员,你如何解决这些问题.

提前致谢

Bri*_*new 12

我更倾向于明确(也许是冗长)简洁(也许是模棱两可).

你的例子了.Dispatcher/ Event是一个很好的.如果你运气不好,你最终必须完全确定每次出现这些问题以解决任何歧义.

在这种情况下,您最终会得到大量冗长的代码,或者重构您的代码,使冲突的类不共存(冲突实际上可以作为不相关实体共存的指标,但那是另一个讨论)


dar*_*osh 5

我肯定会选择第一个,即StatisticsDispatcher和StatisticsEvent,因为单独使用Dispatcher和Event这两个词可能意味着很多事情(特别是在Java EE中).