如何从我的 jar 或 aar 文件中隐藏类



我现在正在开发一个库。迷你结构就像

AwesomeLib
  ----Core
        -Engine
        -Manager
        -...
  ----Services
        -AServices
        -BServices
        -.....

我不希望客户端访问某些部分,例如核心包中的引擎或管理器。但我在服务部分需要它们。所以我不能使用默认类。我也不想在同一个包中收集所有类。

注意:我只给客户 jar-aar 文件。

注意 2:我不想保护我的代码。只想使用封装。

如果你想要的是封装,试试这个:

  • EngineManager设为私密
  • 为每个接口创建一个公共接口(使它们实现接口(
  • 对于每个接口(或每个逻辑组(创建一个 Factory 类,该类将创建 Object ,但仅将其作为其接口返回。
这样,所有

实现细节都将隐藏在接口后面,封装所有逻辑。

客户端将能够使用工厂来创建接口的实现,但不知道实现细节或系统逻辑的其余部分,因此对它们毫无用处。

最新更新