较低级别的包是指包 a.b.c.d,较高级别的包是指 a.b.c,并且我已经使用了彼此相关的术语。我不确定是否有定义此类级别的术语。 然而,从面向对象的角度来看,我想知道从 a.b.c.anotherClass.anotherMetod() 调用 a.b.c.d.aClass.aMethod() 是否是一个好主意。在我看来,a.b.c 的设计应该使其不知道 a.b.c.d 包,因为 a.b.c.d 代表 a.b.c 的更具体形式,或者逻辑上低于 a.b.c 的东西。
最佳答案
无论如何,不建议使包之间的依赖关系成为双向的。因此,如果您有从包 a.b.c 到 a.b.c.d 的依赖项,那么您不应该有从 a.b.c.d 到 a.b.c 的任何依赖项。这称为包缠结,通常表示应用程序的耦合度高且可能损坏分层。像Sonar这样的工具可以帮助您找到包裹缠结的情况。
我通常将 API 的接口(interface)放在较高级别的包中,将实现放在较低级别的包中。因此引用将从较低级别的包转到较高级别的包。
如果您的 API 驻留在较低级别的包中,您应该重新组织您的包。
关于java - 在较高级别包的类中使用较低级别包的 API 是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3211733/