首页 文章

Kotlin中的包等效可见性修饰符

提问于
浏览
6

我'm writing a program in which I'使用工厂模式 . 我有一个名为 AssetFundCalculator 的接口和一个名为 AssetFundCalculatorImpl 的类,它实现了接口 .

AssetFundValidator 类验证某些输入,并能够实例化有效的 AssetFundCalculatorImpl .

我想如果程序的其余部分只知道接口,而不是 AssetFundCalculatorImpl ,那么只有 AssetFundValidator 可以实例化它 .

我的包结构如下所示:

enter image description here

在Java中,我会将包可见性修饰符赋予 AssetFundCalculatorImpl 类,或者它的构造函数,它会解决问题,但在Kotlin中,没有包可见性修饰符 .

这个问题有方法解决吗?我不想将此代码放入单独编译的模块中,因此 internal 修饰符不起作用 .

1 回答

  • 4

    您可以将 AssetFundValidatorAssetFundCalculatorImpl 放入同一文件中,并将 AssetFundCalculatorImpl 标记为 private . 在这种情况下,只能访问同一文件中的代码,包括 AssertFundValidator ,但不能访问程序其他部分的任何代码 .

相关问题