在我目前的項目中,我們正在使用我們的Swing客戶端以下模式:的Java Swing:保持事件處理maintanable
業務對象(POJO)< - >(映射)< - >演示模型(POJO與財產變化支持)< - >(約束力)< - >查看組件
一切都很好,工作的方式,我們期待他們的行爲。
,但我們encouter這些問題時,觀點開始成長:
- 許多事件被觸發,導致級聯事件。一個字段上的一個更新可能會導致數十個後續屬性更新
- 當對話框複雜度增加時,監聽器的數量也會增加,並且代碼開始變得混亂且難以理解。第一個答案後
編輯:
- 如果價值沒有改變,我們不火的事件。
- 如果我們不需要它們,我們不會添加監聽器。
我們的屏幕非常複雜,需要其他相關面板的通知。所以我們有很多有用的監聽器,而且單個用戶的更改可以觸發許多潛在的事件。
將演示模型與業務模型綁定的想法對我們來說並不是那麼好:我們在映射過程中執行一些代碼。
我要找導遊,建議,最佳實踐等關於建立維護Swing應用程序,尤其是對事件的管理方。
你什麼時候決定啓動更改監聽器?如果你有一個擁有許多屬性的bean,並且有一些更新在一行中,你如何決定觸發一個更改事件而不是許多屬性更改事件? – Guillaume 2010-07-02 13:02:16
每次手術射擊一次。如果源代碼是bean風格的,那麼每個'set'都會有一次。如果源以OO風格編寫,那麼事件就會減少。後期擔心合併(例如AWT將合併重新繪製)。 – 2010-07-03 11:44:04