您如何在Kotlin中解决循环进口问题

问题描述 投票:0回答:1

我是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继承/实现,但这感觉并不正确。有什么建议吗?

kotlin design-patterns circular-dependency
1个回答
0
投票

它将在很大程度上取决于接口的作用,但是您可以将其函数参数限制为MyClass实现的某些接口:

© www.soinside.com 2019 - 2024. All rights reserved.