假设我的root包中有20个类。我决定通过在根包下创建3个子包来组织这些类。然后我在每个子包中放入5个类,在根包中留下5个类(因为它们是顶级类)。现在因为我需要在根包中的5个类的子包中使用类,所以我最终在子包中公开了类,而在子包之前这些类只在包暴露之内。
上述代码组织完成了很好的指导。子分组是按功能而不是按层。包之前的相互依赖性被最小化。但是,仍然有很多子包类可以从更高级别访问。
是否有针对此类情景的良好做法?
答案 0 :(得分:2)
不幸的是没有。您可以拥有的最多功能是通过使包私有(默认访问)来实现包级别的可见性。您不能拥有它,以便只有同一个模块中的其他类可以看到一个类。我认为Project Jigsaw和JSR 294会解决此问题(除了其他内容之外),但您可能不会在Java 9之前看到它。