[英]Java Data binding best practices
即使我不是Java新手,我也只是在學校/大學環境中使用它,所以我不知道企業中使用的所有最佳實踐。
特別是我現在正在開發一個Java桌面應用程序(在UI層使用Swing),我對使用swing組件進行數據綁定的最佳實踐特別感興趣。
例如,我可以在模型層有一個模型對象列表,我需要在JTable中顯示它們。 然后,當選擇JTable的單行時,我需要在一些JLabel上顯示與所選行對應的模型對象的一些信息。
我應該使用哪些庫? 這樣做的最佳做法是什么?
我正在尋找一些鏈接/文章/教程(/書籍?)來深入研究這個主題,並了解各種解決方案的優缺點。
對於您給出的具體示例,我建議采用以下方法:
List<Model>
,其中List
實現支持RandomAccess
(例如ArrayList
)。 AbstractTableModel
並覆蓋getValueAt(int row, int col)
以索引到List<Model>
並檢索相應的Model
實例。 然后返回要綁定到column: col
的特定屬性。 總的來說,在涉及數據綁定而不是使用框架時,我會自己動手。 對於編輯器樣式的面板,我通常實現三個方法: initialise()
, commit()
和clear()
,其中initialise
采用正在編輯的域對象的實例, commit
應用任何更改並返回域對象的修改實例,以及clear
清除所有UI組件值或將其設置回默認值。
始終打開應用程序進行擴展,並牢記耦合因素。 我的意思是你應該將所有數據模型存儲在不同的數據結構中,而不管UI層(Swing組件)。 您應該嘗試使用單獨的松散耦合(具有單獨的數據提供程序包)數據結構,該數據結構將為您提供所需的所有值。 一旦設計到位,您就可以開始擔心UI綁定了。
擁有一個簡潔的UI IDE(如Netbeans),用於與swing相關的開發。 總是去布局 。 布局一開始很難設計,但是一旦你開始使用布局,它將非常有用和方便。 你將進一步了解Swing和當然Swingworkers的聽眾。 做一個谷歌,你會發現這些非常好的資源。
我不知道擺動很好,但你有沒有嘗試過模型gui mediator模式? 適用於所有語言和任何gui組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.