javafx

在为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控件更易于观察。 他们通过属性和可观察的集合公开其状态。 这样,应用程序可以通过“监听”控件而不是通过覆盖控件的方法将自身插入控件来对状态更改做出React。 另一个原因是JavaFX中将其完全分离为“控件”和“皮肤”。 Swing组件通常在组件本身中而不是在UI委托中具有“外观”方面(例如paintComponent())。

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

javafx

javafx_JavaFX技巧4:总结相关推荐

  1. java8 javafx_JavaFX技巧8:美丽深层

    java8 javafx 如果您正在开发JavaFX的UI框架,请养成一种习惯,始终将自定义控件拆分为控件类和外观类. 来自Swing自己,这对我来说并不明显. Swing还使用MVC概念,并将实际的 ...

  2. keyshot怎么批量渲染_提高Keyshot逼真渲染的小技巧

    Keyshot是一个特别神奇的应用软件,但是,就像Photoshop一样,如果你不知道怎么使用它,那么再优秀的工具在你手中也什么都是了.这里我就告诉你一些制作优秀效果图的技巧以及如何使用这个神奇软件. ...

  3. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧

    1. 检查 vim 软件包 1.1 CentOS 发行版 $ alias vi alias vi='vim' $ $ which vim /usr/bin/vim $ $ ls -l /usr/bin ...

  4. Python 笔试面试及常用技巧 (1)

    1. 交换两个数字 In [66]: x, y = 1, 2In [67]: x Out[67]: 1In [68]: y Out[68]: 2 赋值的右侧形成了一个新的元组,左侧立即解析(unpac ...

  5. Redis 使用技巧

    Redis 现在非常受欢迎,似乎已经成为内存数据存储行业的标准.本人结合平时使用Redis经验,也同时查找了一些网上别人的总结经验,总结以下几条Redis使用技巧. 1. 停止使用 KEYS 众所周知 ...

  6. 受用一生的高效 PyCharm 使用技巧(六)

    http://www.sohu.com/a/329854019_654419 大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从第一篇开始,一直到本篇,一共更新了6篇文章,每篇 5 个小技 ...

  7. 受用一生的高效 PyCharm 使用技巧(四)

    https://blog.csdn.net/pdcfighting/article/details/93269028 大家好,距离最近一篇 PyCharm 使用技巧的文章已经过去一月有余,最近虽然也比 ...

  8. 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件

    https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ 在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果 ...

  9. 受用一生的高效 PyCharm 使用技巧(一)

    声明:本文章转自 返回主页Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. https://www.cnb ...

最新文章

  1. wincc里c语言long int,WinCC V7.3_C脚本手册.pdf
  2. 报错解决:RequestsDependencyWarning: urllib3 (1.24.3) or chardet (3.0.4) doesn't match a supported versio
  3. ios键盘done中文_关于IOS键盘的一些调用心得与坑
  4. python全排列字典序输出 递归_递归实现全排列,字典序法实现全排列
  5. find命令以及管道的简单使用技巧
  6. 流量枯竭的时代,小程序创下“神话”,打造全新商业生态!
  7. python爬虫文件格式_Python网络爬虫数据格式学习(转换headers、表单和urlencode数据为字典格式)...
  8. 使用 Spring 简化 MyBatis
  9. Kubernetes 是什么?为什么也称为 K8S?| 科普
  10. 大数据技术成功案例和趋势 2021-25
  11. 无论计算机有多强大、攻击者多么聪明都无法破解的密码:一次一密
  12. 写文章不会起标题?爬取虎嗅5万篇文章告诉你
  13. POJ 3047 Bovine Birthday 日期定周求 泽勒公式
  14. c# 正则匹配,匹配括号,中括号等
  15. Redis server response timeout (3000 ms) occured for command: 错位主要是set数据超长了
  16. openstack理论知识【Openstack证书考试 2022】
  17. jack server 常见错误解决方法
  18. 数字地 模拟地 电源地 屏蔽地
  19. linux antivir,Linux下安装和使用杀毒软件AntiVir (1)
  20. 过日子·混日子·奔日子

热门文章

  1. POJ2411-Mondriaan's Dream【状态压缩dp】
  2. P3538-[POI2012]OKR-A Horrible Poem【hash,字符串】
  3. POJ2752-Seek the Name, Seek the Fame【KMP】
  4. P3368-Frequent values【线段树】
  5. 【期望】期望分数(金牌导航 期望-4)
  6. 初一模拟赛总结(5.11)
  7. 汇编语言(二十一)之数值交换与自增
  8. 漫画:什么是时间复杂度
  9. Oracle入门(十四C)之转换函数
  10. 你可能不知道的 10 条 SQL 技巧