gpt4 book ai didi

java - 我的自定义控件应该依赖于 Controller 类还是接口(interface)?

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:44 24 4
gpt4 key购买 nike

假设我在我的应用程序中创建一个自定义控件。此自定义控件可以放置在另一个布局的 FXML 文件中,或者通过代码动态添加。容纳此自定义小部件的父容器必须能够响应其更改。

我的自定义小部件应该使用接口(interface)(多态性)还是 Controller 传递?

前者要求任何动态地将其添加到其布局中的父类实现 WidgetInterface,以便它可以处理更改。

后者允许 Controller 类在构造期间传递自身,以便小部件可以告诉父 Controller 根据更改采取行动。这最适合 FXML 注入(inject)。然而,这种方法的问题在于它只允许一个父 Controller 类控制该小部件。

我的小部件如何能够被任何类、任何地方使用,并且可以轻松地从 FXML 注入(inject)而不会出现问题?通过注入(inject)方法,它将尝试调用initialize(),并在可能没有 Controller 类时依赖 Controller 类。

最佳答案

我想说最好的选择是使用 Controller ,因为正如您所说,它们可以很好地与 FXML 注入(inject)配合使用。

我不认为让一个父 Controller 类控制小部件是一件坏事,因为一个类可以实现您选择的接口(interface),甚至可以扩展另一个类,继承其方法/属性。

此外,如果您将 fxml 导入场景构建器,您甚至可以使用场景构建器轻松操作小部件。

关于java - 我的自定义控件应该依赖于 Controller 类还是接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23824466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com