我有一個類CommonTableModel具有幾個實例方法和對兩個實例變量分別經營對於這個問題,這將是Java中最好的設計模式嗎?
- COLUMNNAMES
- 數據
現在,我有六個表,每個表都有差異。列名稱,但應具有CommonTableModel類的所有實例方法。因此,要將CommonTableModel的實例傳遞給JTable實例,我應該首先初始化兩個實例變量(columnNames和data)。
Q1。我應該製作六個TableModels,每個對應於每個表,然後將它們擴展到CommonTableModel?
public class FirstTableModel extends CommonTableModel {
public FirstTableModel() {
columnNames = {"id", "name"};
data = {{1, "John"}};
}
}
在上述例子中,我試圖初始化繼承的數據成員,使得每個六個TableModel的,可根據它們表示表填充COLUMNNAMES。
但我得到一個錯誤,這限制了我以這種方式初始化繼承的成員。我認爲我們不能以這種方式初始化實例變量。
那麼我怎樣才能填充CommonTableModel的實例變量,以便CommonTableModel的實例方法處理稍後我填充它們的數據。
其中一個解決方案是在CommonTableModel的構造函數中傳遞數據,但這樣我每次在創建Table時都必須傳遞整個ColumnNames。
我很困惑,因爲我沒有太多的編程經驗,也不知道好的編碼習慣。
請參閱一些好的設計模式書籍,以便我可以更好地理解設計模式。
+1」 .. 。沒有初始化的新陣列...「謝謝 – 2010-02-03 14:35:09
rsp和你的答案看起來很棒。你可以請哪一個更好? – 2010-02-03 14:42:55
這是你的選擇。你應該確定只是不要讓它們成爲'靜態',正如你在rsp答案的評論中提到的那樣。它會影響同一類的** ALL **實例!您還應該在通過超類的構造函數之前使用'new'關鍵字來實例化它們。我會很快用一個例子來編輯答案: – BalusC 2010-02-03 14:48:23