不使用JavaFX时使用FXCollection是否干净/正确

时间:2018-08-23 08:10:24

标签: java javafx collections kotlin javafx-8

我正在回答question,解决方案是使用ObservableList之类的可观察集合。后来我意识到我不知道该解决方案是否被认为是“干净的”,因为从FXCollections使用ObservaleList就像部分使用JavaFX,但同时不使用它。

是否可以使用FXCollections并与AWTSpring framework或与JavaFX无关的任何其他框架中混合使用它们?

我在Java / Kotlin中找不到任何可观察的本机收集API。是否有一个包含可观察集合并将它们与JavaFX分开的库/框架?我曾尝试查找它们,但仅发现RxJava,据我了解,它与我想要的行为无关。

总结一下我的问题:在与JavaFX没有共同之处的项目中,使用FXCollection是否被认为是干净的。如果不是,是否有一个框架可以产生与可观察集合相同的行为?

1 个答案:

答案 0 :(得分:2)

通常来说,有点气味。引入对特定(大型)框架/组件的依赖关系,以便仅使用一小部分技术,应该“完全有意识地”进行。

您总是必须在重复使用现有代码或自己编写 之间进行权衡。您不应该像超级市场那样看待世界,在这里逛逛,把什么东西都扔进购物车中,这些东西乍一看对他们来说都是有用的或有趣的。像maven这样的构建工具使超级简单(只需向您的POM文件添加另一个条目,对),但是定义依赖关系是该决定的较小部分!以后可能会带来不愉快的后果。

话虽如此,当您具体询问JavaFx时,我的回答是:避免这样做。

JavaFX的问题是:在使用JavaFX时,有很多环境会给您带来麻烦。我已经不止一次地看到A组创建了基于JavaFX的工具,然后发现B组无法使用该工具,因为他们不得不在IBM System Z上使用它。对不起,IBM System Z和JavaFX却没有,一个好故事。

长话短说:向项目添加新的依赖项需要一个明确的决定,并且您必须确保它不会对使用交付的人员造成问题。在5分钟内完成了添加依赖项的工作,但随后您在项目的整个生命周期中都使自己成为了依赖项!鉴于JavaFX的悲惨故事,他知道在1、3、5年后会发生什么。