JavaFX技巧4:总结
在為JavaFX開(kāi)發(fā)自定義控件時(shí),我強(qiáng)烈建議您遵循JavaFX核心控件的腳步,并使控件的API盡可能最終化,并在所有方法聲明的前面放置“ final”關(guān)鍵字。
例
在FlexGanttFX中,我有很多看起來(lái)像這樣的代碼:
為什么?
設(shè)計(jì)控件時(shí),請(qǐng)牢記控件的特定行為。 可以通過(guò)使用“最終”來(lái)保護(hù)此行為。 如果您不使用它,則其他開(kāi)發(fā)人員將繼承該控件的子類(lèi),他們將覆蓋其方法,他們將遇到問(wèn)題,并將缺陷票證提交給您的問(wèn)題管理工具。 最后,你會(huì)浪費(fèi)在追逐自己的錯(cuò)誤你的時(shí)間。 僅由于無(wú)法以預(yù)見(jiàn)的方式使用控件而存在的錯(cuò)誤。
哪里?
控件類(lèi)的公共API尤其需要保護(hù),該類(lèi)正在管理控件的“狀態(tài)”。 它是您與控件用戶(hù)之間的合同。 對(duì)于控件的外觀而言,情況并非如此,因?yàn)橥庥^是“實(shí)現(xiàn)細(xì)節(jié)”,并且修改外觀的人都知道它們正在干擾控件的內(nèi)部工作。 您仍然希望其他開(kāi)發(fā)人員可以輕松地修改控件的“外觀”。
新概念?
用這種方法保護(hù)控件不是一個(gè)新概念,但在Swing中并沒(méi)有使用太多。 現(xiàn)在,使用“最終”的情況更強(qiáng),因?yàn)镴avaFX控件比Swing控件更易于觀察。 他們通過(guò)屬性和可觀察的集合公開(kāi)其狀態(tài)。 這樣,應(yīng)用程序可以通過(guò)“監(jiān)聽(tīng)”控件而不是通過(guò)覆蓋控件的方法將自身插入控件來(lái)對(duì)狀態(tài)更改做出反應(yīng)。 另一個(gè)原因是JavaFX中將其完全分為“控件”和“皮膚”。 Swing組件通常在組件本身中而不是在UI委托中具有“外觀”方面(例如paintComponent())。
翻譯自: https://www.javacodegeeks.com/2014/07/javafx-tip-4-have-the-final-word.html
總結(jié)
以上是生活随笔為你收集整理的JavaFX技巧4:总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 带有Angular JS的Java EE
- 下一篇: Spring MVC中的验证组