如果一个类依赖于另一个包中的类,它是否依赖于该包中的所有其他类?

时间:2012-02-29 19:28:16

标签: java architecture dependencies packages

我目前正在学习软件设计的原则,特别是Acyclic Dependencies Principle(第18页)

从给出的示例中我将其解释为:当包A中的一个类依赖于包B中的类时,包A依赖于包B中的所有类及其依赖性(可传递)

我知道包A将依赖于包B.但所有包B的实际上并不依赖于它 - 我对此不太确定。我认为它可以像示例中那样级联的唯一方法是,在包B中依赖的类实际上依赖于包B中的某些类,这些类依赖于其他包。

3 个答案:

答案 0 :(得分:4)

包只是一个命名空间。对包的依赖性不存在。你可以依赖类,这些类都在一个包中,但就是这样。如果依赖于其中一个类,则不依赖于包的所有类。

说一个类或包依赖于另一个包只是一个快捷方式,说它至少依赖于这个包的一个类。

答案 1 :(得分:2)

据我所知,包A中的类(让我们称之为ClassA)仅依赖于它使用的包B中的类(让我们称之为ClassB)。

但如果ClassB依赖于ClassBee和ClassBuzz(也在包B中),那么ClassA也将依赖于那些。

如果包(A)中的一个类依赖于另一个包(B)中的一个类,则A依赖于B,无论您要使用的类(比如ClassApe)是否使用包中的任何类乙

我希望这能回答你的问题并且不会过于混乱。

答案 2 :(得分:1)

我认为关于其他包中的内部依赖关系的最后一个条款是相当重要的,只要该包提供所需的最小可访问性,仍然努力正常运行。所以,这个原则可能会告诉你使用整个包装,而不是它的一些部件。

但是你不依赖于你使用的更多类,所有的功能在下面的软件包版本中应该保持相同,你可以访问软件包的公共部分,但不是你应该担心内部依赖性,但是包的作者。

相关问题