我知道我们可以在java中创建一个包私有类.所以该类是Internal,只能在指定的模块中访问:
class MyPackagePrivateClass
{
...
}
Run Code Online (Sandbox Code Playgroud)
现在我正在开发一个我命名的安卓库,LibraryA我希望使用LibraryB我自己的存在LibraryA.如何防止用户直接LibraryA使用LibraryB?
是否有任何概念,如包私有库或类似的东西?
在LibraryB有这样的方法:
public QueryBuilder select(String... columns);
Run Code Online (Sandbox Code Playgroud)
但我强烈认为我们应该使用Type-Safe Enum pattern和阻止用户将字符串传递给这些方法(考虑维护和重构问题).所以我决定将这些方法包装在LibraryA:
public TypedQueryBuilder select(Column... columns) {
queryBuilder = queryBuilder.select(toString(columns));
return this;
}
Run Code Online (Sandbox Code Playgroud)
因此我的库的用户应该使用我提供的Typed方法(Column这里是一个类型安全的枚举).但是,如果他们可以访问原始方法,他们可能会使用这些方法,我倾向于禁止这样做.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |