ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

两个java库互相导入?

2019-06-10 02:01:18  阅读:182  来源: 互联网

标签:java software-design


我正在研究遗留框架,显然有两个库是相互依赖的.我的意思是从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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有