【问题标题】:Javafx Gridpane Builder BenefitsJavafx Gridpane Builder 的优点
【发布时间】:2013-02-12 05:18:56
【问题描述】:

我想知道使用 Javafx Gridpane Builder 相比不使用它的目的和/或好处是什么?我似乎找不到任何关于建造者的目的和好处的信息。

【问题讨论】:

    标签: javafx


    【解决方案1】:

    更新 - 构建器已弃用

    关于一般的构建器,JavaFX 项目负责人writes

    在 8 中弃用并从 JavaDoc 中删除,在 9 中消失(将作为可单独下载的 Jar 提供,因此您可以继续使用它们,但不会更新)。我们正在从样本中删除它们。

    最好关闭 Builders。


    JavaFX 中的Builder classes 提供fluent interface 功能。这样的 API 通常比命令式的代码更容易阅读。

    Fluent API 本质上是declarative,编写无错误的声明性代码通常比有状态的imperative code 更容易。

    可以将 Builder 实例创建为模板,并且可以反复重复使用相同的实例,正如 Advantages of JavaFX Builders 中所展示的那样。

    JavaFX Builders 还定义了可以在 FXML 文档中使用的属性。有关此用法的更多信息,请参阅Introduction to FXML 文档的构建器部分。

    与命令式 API 相比,JavaFX 2.2 中构建器可能不足的一些领域是:

    1. 构建器不促进属性绑定。
    2. 生成器 API 可能并不适用于所有功能。
    3. 构建者可以使用难以理解的泛型。
    4. 构建器不允许您对对象设置静态约束。
    5. 对于简单的声明,构建者比他们的同行更罗嗦。

    第 4 点的一个例子是 Builder 没有类似 GridPane.setVgrow(priority) 这样的方法。

    至于 GridPaneBuilder 与使用 GridPane 类相比 - 它与其他构建器与命令式 API 比较具有相同的优点和缺点,但是 GridPaneBuilder 比其他一些构建器更受限制,因为它只公开了GridPane 接口的功能 - 主要是因为 GridPane 非常依赖静态方法来指定布局约束,并且等效功能未在 Builder 中公开。

    【讨论】:

    • 很好的答案!这解释了我需要知道的很多东西,谢谢!实际上,我一直在寻找像构建器这样的功能,但我不知道它们应该被称为什么。
    • 看起来建筑商正在走恐龙的道路,不过:mail.openjdk.java.net/pipermail/openjfx-dev/2013-August/…
    • 谢谢大卫,我更新了答案以包含不使用 Builders 的建议。
    猜你喜欢
    • 2015-09-17
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    相关资源
    最近更新 更多