在我的图书馆中加入“内部”包是不好的做法?

时间:2017-06-04 13:58:56

标签: java shared-libraries

我正在设计一个库,虽然我知道我只应该让public我希望客户端访问的类,但我很难坚持这个最佳实践。据我所知,这是最好的做法。我决定将一个名为internal的包放在我的库中的一个包中,以保存我打算成为包私有的类,但可能最终为public

程序包在Java中工作的方式似乎有缺陷,因为你不能把一个类“父包 - 私有”,所以当涉及到这样的问题时,真的是一个“坏习惯”吗?

1 个答案:

答案 0 :(得分:3)

等待Java 9,事情就会清理完毕。新的 模块结构将允许限制公众 模块外的任何地方的课程。

但即便到那时,请注意访问权限并非真正可执行。通过正确使用反射,您可以访问任何内容,甚至是私有的(不确定,但我认为Java 9的模块不会通过反射访问)。

访问修饰符仅仅是对用户的注释"不依赖于我,我可能会改变"。如果无法使用访问修饰符,我认为以其他方式提供该注释是完全可以的。甚至JDK都有suncom.sun个完全可访问的软件包,但每个人都知道你不应该在它们上构建代码。

查看一些流行的API,我经常找到包名internal,所以你可以恕我直言。