java - 我的内部 API 类应该全部放在一个包中吗?

标签 java api

我正在努力打包 API 以供公众使用。因此,我试图将公开的方法仅限于那些我希望公开和支持的方法。当然,在此之下还有许多受限的访问方法。

问题是我有很多内部代码需要访问这些受限制的方法而不公开这些方法。这会产生两个问题:

  • 我无法创建接口(interface) 像这样在类之间进行通信 将使这些成为我的内部方法 公开。
  • 我无法访问 protected 或默认的 方法,除非我把大部分 我的内部类(class)在同一个 包。

因此,我有大约 70 或 80 个内部类在完全隔离的包中,但具有过于宽松的访问修饰符。您会说单个包是两害相权取其轻,还是有更好的方法来掩盖我的内部方法,同时保留更细粒度的包?

我很想在这里找到最佳实践。

我已经知道 This

最佳答案

对于您的问题,有两种解决方案不涉及将所有类保存在同一个包中。

首先是使用 Friend Accessor/Friend Package (实用 API 设计,Tulach 2008)中描述的模式。

第二种是使用OSGi。有文章here解释 OSGi 是如何做到这一点的。

相关问题:1 , 2 , 3 , 和 4 .

关于java - 我的内部 API 类应该全部放在一个包中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2934165/

相关文章:

java - 在 Android 上使用蓝牙的服务发现失败异常

java - 注释属性 RequestMapping.value 的值必须是常量表达式

java - 程序运行无异常但不显示表名

C++ 与其他语言互操作

javascript - 来自提交外部交易的 Cardano 钱包格式错误的 tx 负载

php - 未定义的命名空间前缀

java - 相当于 Google Ads API 中的 AD_PERFORMANCE_REPORT?

javascript - RESTful API 未显示在简单的 AngularJS Controller 中

java - 在什么情况下 JVM 会决定增加堆的大小?

java - 我怎样才能关闭netty客户端?