我是Kotlin编程的新手,我已经设法遇到了经典的循环依赖问题-我知道Kotlin可以应对这些问题,但是我想知道如何改变设计以免发生这种情况。在下面我应该使用什么结构或Kotlin功能?
import myClass
interface myInterface {
fun useMyClass(myInstance: myClass)
}
import myInterface
class myClass(myList: List<myInterface>) {
val storedList: List<myInterface> = myList
var myValue: Int = 10
}
我希望myClass
存储实现myInterface
的多个对象,但我也希望每个对象都引用它们已传递给的类,即useMyClass
的每个调用都具有[ C0]。
例如,我可以创建一个类
useMyClass(this)
并在class implementingMyInterfaceClass(): myInterface {
override fun useMyClass(myInstance: myClass) {
myInstance.myValue += 10
}
}
中的某个位置调用它:
myClass
[从技术上讲,我可以在中间创建另一个构造,该构造将由implementingMyInterfaceClass().useMyClass(this)
使用并由myInterface
继承/实现,但这感觉并不正确。有什么建议吗?
它将在很大程度上取决于接口的作用,但是您可以将其函数参数限制为MyClass实现的某些接口: