编程语言
首页 > 编程语言> > 两个java库互相导入?

两个java库互相导入?

作者:互联网

我正在研究遗留框架,显然有两个库是相互依赖的.我的意思是从libB导入libA,从libA导入libB.首先,我认为这是一个糟糕的设计,但为什么有人会这样做?相反,哪些条件可以导致有人写这个?

编辑:

每个库都依赖于另一个库中的类,因此它们会导入包并在其构建路径中包含另一个库jar.

解决方法:

在这种情况下,这样做更容易,因为双方是独立的.如果他们不相互交谈,那么创建周期并不困难.你必须注意避免它们.

循环依赖不难创建.看看Java本身:java.lang,java.util和java.io有循环.你会不会再写Java了,因为它太“糟糕”了?

这意味着你永远不能在没有libB的情况下使用libA,反之亦然.他们已成为一个大型图书馆.与Java和其他系统中的软件包相同:一旦您有一个循环,您必须将所有这些软件包一起使用,就像它们是一个一样.

写Spring的guys非常关注周期.他们设计并重构他们的框架以消除它们.

那么 – 有什么危害? Juergen Heller说他们很糟糕,他是对的.但是从你的角度来看,你遇到了什么罪恶?这意味着您必须在运行和测试时同时使用它们.当它们之间存在循环时,您无法在没有B类的情况下测试A类,反之亦然.它使测试和运行更加困难.

您可以选择没有循环的替代方案.如果您可以更改源,则可以重构和维护它.但就是这样.

你应该检查自己的代码,看看你是否已经完成了自己的代码. IntelliJ具有很好的分析工具,可以应用于代码库.看看这个.

标签:java,software-design
来源: https://codeday.me/bug/20190610/1208718.html