例如我有
项目 X 与类a.b.c.d.AbstractFoo
现在我有一个项目 Y 的实现AbstractFoo
是否有使用包名的约定?如果说包名称相同,是否有优势?
例如我有
项目 X 与类a.b.c.d.AbstractFoo
现在我有一个项目 Y 的实现AbstractFoo
是否有使用包名的约定?如果说包名称相同,是否有优势?
是否有使用包名的约定?
的实现的包名称应该对该AbstractFoo
类有意义,并且不一定与 的包相同。AbstractFoo
例如,我经常 override / implement JComponent
,但我仍然不会梦想package javax.swing
在我的一个源文件中编写代码。
如果说包名称相同,是否有优势?
不,不是。但是存在语义差异,这是由于默认(包级别)访问修饰符造成的。不过,依赖一个项目的包名与另一个项目的包名匹配对我来说似乎是一个非常糟糕的主意。
don't use same packages in different projects. it's easy to fall into a name collision in a future. each project should have it's own namespace so you can put both projects on the classpath without any name collision. if you have com.yourcompany.projectA.List interface i would use something like com.yourcompany.listCommons.AbstractList class. there is no standards. naming just should be readable and understandable for others
对于不同的项目/JAR,使用不同的包名。以后你会为自己和他人节省很多时间。