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

时间:2018-03-07 13:02:14

标签: android gradle

我正在开发一个图书馆。迷你结构就像

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

我不希望客户端在Core包中像Engine或Manager那样访问某些部分。但我在服务部分需要它们。所以我不能使用默认类。另外,我不想收集相同包中的所有类。

注意:我只向客户提供jar-aar文件。

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

1 个答案:

答案 0 :(得分:0)

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

  • 制作EngineManager私人
  • 为每个人创建一个公共接口(让他们实现接口)
  • 对于每个接口(或每个逻辑组),创建一个 Factory 类,该类将创建Object,但仅将其作为其接口返回。

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

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