如何将Java库源拆分为两个块,保留一个包?

时间:2013-10-24 16:46:00

标签: java android

我们正在创建一个用于Android的安卓库。这意味着类似Eclipse的IDE和类似Ant的构建过程。

图书馆的本质是它有两个不同的部分,代表不同的抽象层次 - 让我们说'上'和'下'。

为了这个问题的目的,假设我们需要从一个部分调用另一个部分的方法,但是希望保持这些方法对库用户隐藏。我已经搜索了通常的引用,但它们都停止在解释包名称约定和范围规则时。 this很有用,但我没有在SO上找到任何可以解答此问题的内容。

直接的解决方案是简单地将所有内容放在一个包中,并将这些方法设置为包私有。但是,出于可维护性,清晰度和不具有100个文件的文件夹的原因,我们更愿意将这些部分拆分为不同的文件夹。

明显的分裂点是将(例如'wibble')包拆分为com.me.wibble.uppercom.me.wibble.lower包/文件夹,但这会使任何互连方法不受欢迎地公开。在缓解中,他们可以通过@hide隐藏在javadoc中。

另一个想法是,我们是否可以在顶级拆分部分而不是经典的/main/test文件夹包含/upper/lower和{{1}并且所有部分共享相同的/test命名空间。我不确定Eclipse是否会如何处理这个问题。

有没有传统方法可以做到这一点,还是只是没有做到?如果有方法,那么专业人士和骗子是什么?

1 个答案:

答案 0 :(得分:0)

嗯......而不是要求解决方案,有时最好提出问题。为什么您希望库用户拥有受限制的视图可能会产生比HOWTO更好的答案。我想到了一些答案,但没有给出,因为我不知道问题背后的动机(我不想浪费你的时间用不适用的答案)。

/ upper,/ lower /,/ test不会让你的情况变得更好。它只是使项目更有条理。无论它们是在同一个文件夹中还是分开,都不会产生太大影响。

听起来你需要为图书馆用户提供公共“接口”,同时拥有供你自己使用的私人“接口”。这可以通过黑客攻击实现,但如果这是一个庞大的预先存在的代码集,则可能会很痛苦。