我一直在争论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
我喜欢第一种解决方案,因为它并没有在所有类中复制功能。但另一方面,我也喜欢第二种解决方案,因为在最后添加功能可以在大型代码库中帮助代码发现。
如果除了内部功能,我还有外部功能,或者如果我允许我们的客户添加功能插件,答案会有所不同吗?
欢迎任何评论和建议。
答案 0 :(得分:0)
我倾向于使用第二个变体,类名略长。
这背后的原因是我觉得我应该能够通过查看名称来判断班级的责任。此外,如果代码稍后还包含与另一个包中的LogIn
相关的内容,这将导致两个具有相同名称的类,这对我(至少对我来说)不那么令人困惑。