在不公开子包类的情况下打包Java子包
假设我的根包中有20个类。我决定通过在根包下创建3个子包来组织这些类。然后我在每个子包中放入5个类,在根包中留下5个类(因为它们是顶级类)。现在,因为我需要使用根包中5个类的子包中的类,所以我最终将子包中的类设置为公共类,而在子包之前,这些类只有包内暴露
上面的代码组织是在良好的指导下完成的。子包装是按特征而不是按层进行的。最小化包之前的相互依赖性。但是,从更高的级别访问很多子包类还是有意义的
是否有解决此类场景的良好实践
你可以在下面搜索框中键入要查询的问题!
假设我的根包中有20个类。我决定通过在根包下创建3个子包来组织这些类。然后我在每个子包中放入5个类,在根包中留下5个类(因为它们是顶级类)。现在,因为我需要使用根包中5个类的子包中的类,所以我最终将子包中的类设置为公共类,而在子包之前,这些类只有包内暴露
上面的代码组织是在良好的指导下完成的。子包装是按特征而不是按层进行的。最小化包之前的相互依赖性。但是,从更高的级别访问很多子包类还是有意义的
是否有解决此类场景的良好实践
# 1 楼答案
不幸的是没有。通过将包设置为私有(默认访问),您最多可以看到包级别的可见性。您不能使一个类仅对同一模块中的其他类可见。我认为Project Jigsaw和JSR 294将解决这个问题(除了其他内容之外),但您可能在Java9之前不会看到它