2013-05-01 3 views
2

Я использую ResultSets для создания моего DefaultTableModel, поэтому я думаю, что было бы неплохо избежать использования ResultSets в представлении, где DefaultTableModel заполняет мои JTables. Я подозреваю, что мои рассуждения ошибочны, предполагая, что компоненты Swing принадлежат только мнению, но любопытно, если такое разделение окажется полезным в некоторых случаях. Я думаю, что способ представления ResultSet потенциально изменяет значение отображаемой информации, делая ее более информативной, основанной на представлении.Swing DefaultTableModel отделяется от GUI

Итак, если у меня есть Swing DefaultTableModel, всегда ли уместно удалить его из представления и поместить его в модель?

ответ

2

Уместно создать подкласс DefaultTableModel, который принимает ResultSet и выполняет всю необходимую обработку. Таким образом, ResultSet напрямую не отображается в представлении, поэтому он дает вам лучшую инкапсуляцию.

+0

Спасибо, интересно! Однако я думал о статическом методе где-то в модели, которая вместо этого вернула бы DefaultTableModel. Причина в том, что мне действительно не нужно добавлять или переопределять что-либо в DefaultTableModel, поэтому я бы рассмотрел это неправильное использование наследования. Я, наверное, ошибаюсь! Это обычно так. – 2013-05-01 11:57:01

+1

@talt: [* Пункт 1: Рассмотрите статические заводские методы вместо конструкторов *] (http://www.drdobbs.com/jvm/creating-and-destroying-java-objects-par/208403883). – trashgod

+0

не может ошибиться с блоховской Библией, которую я слышу! – 2013-05-01 19:01:14