TornadoFX - 实例化解耦控制器的正确方法?

TornadoFX - right way to instantiate decoupled controller?

我有一个控制器,它与视图 classes 没有直接耦合,即它订阅来自事件总线的事件,仅此而已。

我在视图 class (by inject()) 中任意创建它,但它确实不需要存在。有没有办法告诉 TornadoFX 应该以其他方式创建它?

TornadoFX 不进行任何注释扫描,因此无法添加 @Startup 注释或类似内容。确保它被实例化的最简单方法实际上是将它注入到您的 App 子类中。这形成了一种务实、干净且可维护的方法 IMO :)

编辑:实际上最好使用 find(),以确保它实际上是立即创建的,因为 inject() 是惰性的。

val ctrl = find<MyController>()