AssetFundCalculatorImpl

AssetFundCalculatorImpl

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

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

我想让程序的其余部分只知道接口(interface),而不知道 AssetFundCalculatorImpl ,以便只有 AssetFundValidator 可以实例化它。

我的包裹结构看起来像这样:

java - Kotlin中的程序包等效性可见性修改器-LMLPHP

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

有针对这个的解决方法吗?
我不想将此代码放到单独编译的模块中,因此内部修饰符将无法工作。

最佳答案

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

10-08 17:28