处理JavaFX应用程序体系结构的复杂性(适用于几乎任何有状态的应用程序)

时间:2017-05-13 10:07:39

标签: java architecture javafx-8

为了更好地理解我的问题,我会给出我的要求。这个JavaFX应用程序需要创建,编辑和导出一个非常大的表单,它有很多完成规则,用户需要很多指导。此外,这些规则甚至表单结构每1个月甚至更少都会发生显着变化。另一个问题是规则有些复杂,很少有组件可以正确完成而不知道表单状态在完全不同的部分。< / p>

所以我正在寻找一种方法来编写使其易于维护的东西。

到目前为止我一直在尝试:

创建了一个类似于GUI树的大规模树状数据结构,并将表单状态存储在其中。使用此结构通过其中的绑定包含大部分逻辑。 GUI绑定它。

遇到的问题:

  • 我必须编写很多更改侦听器,因为我不能轻易地双重绑定到Object属性的Object属性。

  • UI逻辑泄漏到列表的自定义单元格中。例如:

    view.getDenumire().textProperty().addListener((observable, oldValue, newValue) -> {
        if (newValue != null && getItem().getTip()!= SerieFacturiModel.TipSerieFacturi.SIMPLU){
            getItem().setDenumire(newValue);
        }
    });
    

    我必须编写大约一百个或更多这些,并且很多时候他们有一些逻辑或触发一些其他GUI更改(错误,做他们自己的验证,有时验证依赖于大表单状态 - 应用程序状态)

所以我真的在寻找一种方法来编码验证规则,与模型同步,与应用程序状态的GUI交互是分开的东西,非常容易编写,如果需要更新则不需要超过2次更改(一个包含逻辑的逻辑,如果事先不是API的一部分,则启用注入。

奖金问题:假设事件创建2个事件链(其中事件的处理创建另一个事件,等等)依赖并改变一个有状态资源,有没有办法知道最终结果是什么?如何使应用程序永远不会处于不正确的状态?

0 个答案:

没有答案