1

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

库的本质是它有两个不同的部分,代表不同的抽象级别——比如说“上层”和“下层”。

假设,出于这个问题的目的,我们需要从另一个部分调用方法,但希望对库用户隐藏这些方法。我已经搜索了常用的参考资料,但它们都停留在解释包名称约定和范围规则的地方。尽管这很有用,但我没有找到任何可以回答这个问题的方法。

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

明显的拆分点是将(假设是“wibble”)包拆分为com.me.wibble.uppercom.me.wibble.lower/文件夹,但这会使任何互连方法不受欢迎。为了缓解问题,可以使用 @hide 将它们从 javadoc 中隐藏起来。

另一个想法是我们是否可以在顶层拆分部分而不是经典/main/test文件夹/upper/lower并且/test所有部分共享相同的com.me.wibble命名空间。我不确定 Eclipse 是否/如何应对。

有没有传统的方法可以做到这一点,或者只是没有这样做?如果有办法,优点和缺点是什么?

4

1 回答 1

0

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

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

听起来您需要为图书馆用户提供公共“界面”,同时拥有供您自己使用的私人“界面”。黑客可以做到这一点,但如果这是大量预先存在的代码集合,则可能会很痛苦。

于 2013-10-24T17:12:13.780 回答