我'm writing a program in which I'使用工厂模式 . 我有一个名为 AssetFundCalculator 的接口和一个名为 AssetFundCalculatorImpl 的类,它实现了接口 .
AssetFundValidator 类验证某些输入,并能够实例化有效的 AssetFundCalculatorImpl .
我想如果程序的其余部分只知道接口,而不是 AssetFundCalculatorImpl ,那么只有 AssetFundValidator 可以实例化它 .
我的包结构如下所示:
在Java中,我会将包可见性修饰符赋予 AssetFundCalculatorImpl 类,或者它的构造函数,它会解决问题,但在Kotlin中,没有包可见性修饰符 .
这个问题有方法解决吗?我不想将此代码放入单独编译的模块中,因此 internal 修饰符不起作用 .
1 回答
您可以将
AssetFundValidator
和AssetFundCalculatorImpl
放入同一文件中,并将AssetFundCalculatorImpl
标记为private
. 在这种情况下,只能访问同一文件中的代码,包括AssertFundValidator
,但不能访问程序其他部分的任何代码 .