Java 分包而不公开分包类

标签 java package code-organization class-visibility

假设我的根包中有 20 个类。我决定通过在根包下创建 3 个子包来组织类。然后我将 5 个类放入每个子包中,在根包中留下 5 个类(因为它们是顶级类)。现在,因为我需要使用根包中 5 个类的子包中的类,所以我最终将子包中的类公开,而在子包之前,这些类仅在包内公开。

上面的代码组织是在很好的指导下完成的。分包是按特性分包,不是按层分包。最小化包之前的相互依赖性。但是,从更高级别访问许多子包类仍然是有意义的。

是否有解决此类情况的良好做法?

最佳答案

不幸的是没有。通过将其设为包私有(private)(默认访问),您最多可以拥有包级别的可见性。您不能让一个类只对同一模块 中的其他类可见。我想Project JigsawJSR 294将解决这个问题(以及其他内容),但您可能要到 Java 9 才能看到它。

关于Java 分包而不公开分包类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967749/

相关文章:

java - Java 中的欧拉项目 215

java - 检查 Java 中的 "nested"null 属性

python - 更新 python-elementtree 以克服 xpath 选择器问题

Python,安装失败。退出代码 : 1 windows 10

perl - 如何在不牺牲性能的情况下保持良好的代码组织?

java - 字节码指令和处理器操作之间的关系

java - 检查 Java 正则表达式中的特定字符

Java JSON包导入失败

ruby-on-rails - 从父 Controller 继承还是使用问题?

C# 组织我的代码