Kotlin中的包装等效可见度修饰符

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

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

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

我的包装结构是这样的:

在这里输入图像描述

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

有没有解决这个问题? 我不想把这个代码放到一个单独编译的模块中,所以内部修饰符不会工作。

您可以将AssetFundValidatorAssetFundCalculatorImpl放入同一个文件,并将AssetFundCalculatorImpl标记为private 。 在这种情况下,只能在同一个文件(包括AssertFundValidator进行编码,而不能在程序的其他部分进行编码。