定义一个类抽象并在不同的项目中使用它的实现,应该使用什么java包名?

时间:2012-06-07 14:51:03

标签: java naming-conventions package abstract-class

E.g。我有

项目X. 课程a.b.c.d.AbstractFoo

现在我的项目Y的实现为AbstractFoo

是否有使用包名称的约定?如果包装名称相同,是否有优势?

3 个答案:

答案 0 :(得分:2)

  

是否有使用包名称的约定?

AbstractFoo的实现的包名称应该对那个类有意义,并且不一定与AbstractFoo的包相同。

我经常覆盖/实现JComponent,但我仍然不会在我的一个源文件中编写package javax.swing

  

是否有优势,如果包名称相同?

不,不是真的。但是存在语义差异,这是由于默认(包级别)访问修饰符。依赖于一个项目的包名与另一个项目的包名匹配,对我来说似乎是一个非常糟糕的主意。

答案 1 :(得分:1)

不要在不同的项目中使用相同的包。很容易在将来陷入名称冲突。每个项目都应该拥有自己的命名空间,这样您就可以将两个项目放在类路径中而不会发生任何名称冲突。如果你有com.yourcompany.projectA.List接口,我会使用类似com.yourcompany.listCommons.AbstractList类的东西。没有标准。命名应该对其他人来说是可读和可理解的

答案 2 :(得分:0)

对于不同的项目/ JAR,使用不同的包名称。你将在以后节省很多时间。