Java Swing: реализовать TableModel или расширить AbstractTableModel? - PullRequest
4 голосов
/ 05 мая 2010

Когда мне лучше использовать TableModel, а когда расширять AbstractTableModel?

Ответы [ 3 ]

4 голосов
/ 05 мая 2010

Когда лучше использовать TableModel

Когда вам нужна полная реализация модели таблицы на чистом листе и / или вы должны предоставить что-то, что по природе вашей модели еще не существует или не соответствует

и когда мне расширять AbstractTableModel?

Когда вы можете повторно использовать существующую структуру и методы, предоставляемые абстрактным классом, и / или вам будет проще реализовать это.

Идея в том, что если вы можете использовать его снова, сделайте это. Если не можете, реализуйте с нуля.

Унаследовав AbstractTableModel, вы в любом случае будете улучшать интерфейс TableModel, это будет просто.

3 голосов
/ 05 мая 2010

AbstractTableModel имеет реализацию для обработки TableModelListeners, включая запуск TableModelEvent с. Если вы хотите справиться с этим самостоятельно, тогда нет никаких оснований для расширения. За пределами этого кода другой код не добавляет никаких преимуществ, кроме заглушения методов, объявленных в интерфейсе.

1 голос
/ 05 мая 2010

AbstractTableModel предоставляет реализации по умолчанию для многих методов, определенных в TableModel. Если вам не нужно никакого пользовательского поведения, тогда вы можете просто расширить AbstractTableModel. Также, если ваша модель уже расширяет другой базовый класс, тогда было бы целесообразно просто реализовать TableModel.

...