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

时间:2016-02-22 09:48:35

标签: java kotlin

我正在编写一个程序,我正在使用工厂模式。我有一个名为 AssetFundCalculator 的接口和一个名为 AssetFundCalculatorImpl 的类,它实现了接口。

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

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

我的包结构如下所示:

enter image description here

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

有解决方案吗? 我不想将此代码放入单独编译的模块中,因此内部修饰符无效。

1 个答案:

答案 0 :(得分:4)

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