【问题标题】:Restricting Java package access限制 Java 包访问
【发布时间】:2015-08-30 12:48:11
【问题描述】:

即。我有一个 GUI 包和一个 Logic 包。

如何防止逻辑类导入 GUI 类?从事同一项目的其他人(或我自己)可能会这样做,我想阻止这种情况。

例如,解决方案可以是 JUnit 中的检查,如果完成则失败,或者运行时检查会引发异常。类似的东西,但是怎么做呢?

【问题讨论】:

    标签: import package classloader rule


    【解决方案1】:

    您可以使用 JDepend 或 DependencyFinder 或 Degraph 编写此类测试。

    Degraph 是三个工具中唯一明确旨在为此类案例实际编写测试的工具。此外,AFAIK JDepend 没有在最近的 Java 版本中找到所有依赖项(如注释中提到的类)。

    我是 Degraph 的作者,所以我显然有偏见。

    【讨论】:

      【解决方案2】:

      我创建了JabSaw 项目。它允许您通过使用带注释的类来定义模块并表达模块之间的关系。默认情况下,一个模块包含单个包中的所有类。可以使用 Maven 插件、命令行或单元测试检查限制。这应该可以解决您的问题。

      【讨论】:

        【解决方案3】:

        我想到的一个解决方案是将 GUI 类包设为私有。虽然不能只隔离一个包,说只有Logic类不能使用GUI,其他的可以。

        【讨论】:

          猜你喜欢
          • 2012-09-29
          • 2010-10-17
          • 1970-01-01
          • 1970-01-01
          • 2017-03-28
          • 1970-01-01
          • 1970-01-01
          • 2015-08-24
          • 2011-07-28
          相关资源
          最近更新 更多