IE中。我有一个GUI包和一个Logic包。
如何阻止Logic类导入GUI类?在同一个项目上工作的其他人(或我自己)可能会这样做,我想阻止它。
例如,解决方案可以是JUnit中的检查,如果完成则会失败,或者是引发异常的运行时检查。沿着这些路线,但如何做到这一点?
答案 0 :(得分:1)
您可以使用JDepend或DependencyFinder或Degraph编写此类测试。
Degraph是三个工具中唯一明确用于为这类案例编写测试的工具。此外,AFAIK JDepend在最近的Java版本中找不到所有依赖项(如注释中提到的类)。
我是Degraph的作者,所以我有点偏颇。
答案 1 :(得分:0)
我创建了JabSaw项目。它允许您通过使用带注释的类来定义模块,并表达模块之间的关系。默认情况下,模块包含单个包中的所有类。可以使用Maven插件,命令行或单元测试来检查限制。这应该可以解决你的问题。
答案 2 :(得分:-1)
我想到的一个解决方案是将GUI类包私有化。虽然你不能只隔离一个包并说,只有Logic类不能使用GUI,但其他可以。