gpt4 book ai didi

java - 我的 Android 库中的包结构更好

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:36 25 4
gpt4 key购买 nike

我正在(第一次)编写一个 Android 库(带有自己的 Activity),它将使用 Android aar 包导入到其他 Android 项目中。

我的目标是只发布一个类(我们称它为 MyPlugin),它可以完成提供公共(public)方法的所有工作(调用 Activity 等);但在我看来,所有 Activity 都必须是public;所以我想将用户想要使用的类与我不想使用的类分开。像这样的东西:

com.mycompany.myplugin.api
|--> MyPlugin (public class with public methods)
com.mycompany.myplugin.activities
|--> Acitivty1
|--> ....
|--> ActivityN (public? activities)
com.mycompany.myplugin.mystuff
|--> Services (protected? class with protected? methods)

通过这种设计,我可以对用户说“你应该只使用 api 包”。

问题是 Serivice 类:它被 Activities 和 MyPlugin 使用,如果我希望它(或其方法)受到保护(这样最终用户可以看到它)。

我知道通过反射最终用户可以做任何事情,但我希望尽可能干净和简单。

我找到的唯一解决方案是只有一个包含所有类的包,但是,正如我所说,我想将 MyPlugin 与 Activities 分开。

最佳答案

一个常见的约定是为私有(private)实现/内部类使用一个名为internal 的包。

com.mycompany.myplugin // all public stuff here and in its subpackages
com.mycompany.myplugin.internal // all non public stuff

另外,关注@Drew's answer建议:

It's often good idea to populate your package by feature, not by component

引用资料:

关于java - 我的 Android 库中的包结构更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28564370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com