我应该用包名或类名来表示一个概念吗?

时间:2014-04-19 07:20:35

标签: java class package naming-conventions

我一直在争论java包和java类名的命名。

我遇到的问题如下:我们有一个名为Feature的接口,我们有子接口,如:LogInFeature和AuthenticationFeature。这两个接口都有自己的特定API,并且它们都在同一个包中。对于这个问题,哪个包/类命名结构更有利,为什么?

com.example.internal.feature.LogIn
com.example.internal.feature.Authentication

VS

com.example.internal.features.LogInFeature
com.example.internal.features.AuthenticationFeature

我喜欢第一种解决方案,因为它并没有在所有类中复制功能。但另一方面,我也喜欢第二种解决方案,因为在最后添加功能可以在大型代码库中帮助代码发现。

如果除了内部功能,我还有外部功能,或者如果我允许我们的客户添加功能插件,答案会有所不同吗?

欢迎任何评论和建议。

1 个答案:

答案 0 :(得分:0)

我倾向于使用第二个变体,类名略长。

这背后的原因是我觉得我应该能够通过查看名称来判断班级的责任。此外,如果代码稍后还包含与另一个包中的LogIn相关的内容,这将导致两个具有相同名称的类,这对我(至少对我来说)不那么令人困惑。