【发布时间】:2014-04-19 07:20:34
【问题描述】:
我一直在争论 java 包的命名和 java 类名。
我遇到的问题如下:我们有一个叫Feature的接口,我们有子接口比如:LogInFeature和AuthenticationFeature。两个接口都有其特定的 API,并且它们都在同一个包中 对于这个问题,哪个包/类命名结构更有利,为什么?
com.example.internal.feature.LogIn
com.example.internal.feature.Authentication
对
com.example.internal.features.LogInFeature
com.example.internal.features.AuthenticationFeature
我喜欢第一种解决方案,因为它不会在所有类中重复 Feature。但另一方面,我也喜欢第二种解决方案,因为在最后附加功能有助于在大型代码库中发现很多代码。
如果除了内部功能,我还有外部功能,或者如果我允许我们的客户添加功能插件,答案会不同吗?
欢迎任何意见和建议。
【问题讨论】:
-
我更喜欢第一种解决方案。这样你的代码看起来很优雅,你最终会在同一个地方得到你模块中的所有接口。您可能希望基于模块而不是基于特定功能创建包,因为这会使您的代码分解成您不希望我猜到的补丁。
-
这并不能真正回答您的问题,但是如果您要使用第一个解决方案,您会将
Feature接口放在哪里? (只是出于好奇......:$) -
@wns349,过去代码本身并没有太多考虑。 Feature.java 当前位于同一个包中:com.example.internal.feature。
-
@wns349 我建议将功能和子接口放在同一个功能包中。我会选择它,因为您的所有子界面都会与父界面处于同一级别。
-
@Lily 在这种情况下,您可以将所有父功能放在一个包中,将依赖的子功能放在另一个包中,以便至少您可以区分两者。顺便说一句,我会更多地提高代码的清晰度,并避免在我的代码中创建大量的包。希望你明白了选择最好的解决方案毕竟你是开发者:)
标签: java class package naming-conventions