关于 modularization
面向 Kotlin 多模块项目开发者的模块化参考,说明如何根据实际使用范围设置符号可见性。重点是将公开 API 与模块内部实现分开,避免不必要地扩大 API 表面。
主要功能
- 01按最低可用范围声明可见性
- 02区分公开接口与内部实现类
- 03模块内辅助代码使用 internal
- 04成员仅在类内使用时设为 private
- 05跨模块使用者决定是否公开
适用场景
- 01定义模块对外接口
- 02收窄 Mapper 和扩展函数的可见范围
- 03整理多模块项目的 API 表面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rcosteira79/ android-skills --skill modularization安装后在 Claude Code 中输入/modularization确认已加载。
详细介绍
模块化
在不影响编译的前提下,将所有内容声明为尽可能低的可见性。 从 private 开始;只有当同一模块中的另一个文件需要使用时,才提升为 internal;只有当其他模块实际使用时,才提升为 public。Kotlin 默认使用 public,在多模块项目中,这个默认值通常并不合适——public 符号会成为模块 API 的一部分:它会让实现细节跨越模块边界泄露出去,因此你有义务保持其稳定。
- 作为模块 API 的公共接口 → 接口为
public;其实现类保持为internal(通过 DI 绑定,绝不从其他模块中直接引用其名称)。 - 仅在模块内部使用的映射器 / 辅助程序 / 扩展 / 常量 / UI 状态持有者 → 使用
internal(如果只有单个文件使用,则用private)。“由本模块中的可组合项渲染”并不要求使用public——internal对整个模块可见。 - 仅在所属类内部使用的成员 → 使用
private。
将符号提升为 public 是一项决策,而不是默认选择:先确认确实有其他模块使用,再做决定。
评论
支持 Markdown