JavaFX技巧4:总结

在为JavaFX开发自定义控件时,我强烈建议您遵循JavaFX核心控件的脚步,并使控件的API尽可能最终化,并在所有方法声明的前面放置“ final”关键字。

FlexGanttFX中,我有很多看起来像这样的代码:

public final Activity getActivityAt(double x, double y) { ... }
public final Row getRowAt(double y) { ... }
public final void setShowLinks(boolean show) { ... }

为什么?

设计控件时,请牢记控件的特定行为。 可以通过使用“最终”来保护此行为。 如果您不使用它,则其他开发人员将继承该控件的子类,他们将覆盖其方法,他们将遇到问题,并将缺陷票证提交给您的问题管理工具。 最后,你会浪费在追逐自己的错误你的时间。 仅由于无法以预见的方式使用控件而存在的错误。

哪里?

控件类的公共API尤其需要保护,该类正在管理控件的“状态”。 它是您与控件用户之间的合同。 对于控件的外观而言,情况并非如此,因为外观是“实现细节”,并且修改外观的人都知道它们正在干扰控件的内部工作。 您仍然希望其他开发人员可以轻松地修改控件的“外观”。

新概念?

用这种方法保护控件不是一个新概念,但在Swing中并没有使用太多。 现在,使用“最终”的情况更强,因为JavaFX控件比Swing控件更易于观察。 他们通过属性和可观察的集合公开其状态。 这样,应用程序可以通过“监听”控件而不是通过覆盖控件的方法将自身插入控件来对状态更改做出反应。 另一个原因是JavaFX中将其完全分为“控件”和“皮肤”。 Swing组件通常在组件本身中而不是在UI委托中具有“外观”方面(例如paintComponent())。

翻译自: https://www.javacodegeeks.com/2014/07/javafx-tip-4-have-the-final-word.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值