我们正在创建一个用于 Android 的 Android 库。这意味着类似 Eclipse 的 IDE 和类似 Ant 的构建过程。
该库的本质是它有两个不同的部分,代表不同的抽象级别 - 比方说“上层”和“下层”。
假设,为了解决这个问题,我们需要从一个部分调用另一部分的方法,但希望对库用户隐藏这些方法。我已经搜索了常用的引用资料,但它们都停留在解释包名称约定和范围规则的地方。不过,我没能找到任何可以回答这个问题的东西,this很有用。
直接的解决方案是将所有内容都放在一个包中,并将这些方法设为包私有(private)。但是,出于可维护性、清晰度和一个文件夹中不包含 100 个文件的原因,我们更愿意将各个部分拆分到不同的文件夹中。
明显的分割点是将(比方说“wibble”)包分割为 com.me.wibble.upper
和 com.me.wibble.lower
包/folders,但这使得任何互连方法都被公开。作为缓解措施,可以使用 @hide 将它们隐藏在 javadoc 中。
另一个想法是我们是否可以在顶层拆分部分,而不是经典的 /main
和 /test
文件夹有 /upper
、/lower
和 /test
以及所有部分共享相同的 com.me.wibble
命名空间。我不确定 Eclipse 是否/如何处理这个问题。
是否有常规方法可以做到这一点,或者只是没有这样做?如果有办法的话,有哪些优点和缺点?
最佳答案
嗯……有时候,与其寻求解决方案,不如提出问题。为什么您希望图书馆用户拥有受限的 View 可能会产生比 HOWTO 更好的答案。有几个我想到但没有给出的答案,因为我不知道问题背后的动机(我不想用不适用的答案浪费您的时间)。
/upper,/lower/,/test 并不会让你的情况变得更好。它只会使项目更有组织性。无论它们都在同一个文件夹中还是单独存在,都不会产生太大影响。
听起来您需要为图书馆用户提供公共(public)“界面”,同时拥有供您自己使用的私有(private)“界面”。这可以通过黑客攻击实现,但如果这是大量预先存在的代码集合,则可能会很痛苦。
关于java - 如何将Java库源分成两 block ,保留一个包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19571855/