Death to DefaultTableModel! AbstractTableModel Rulez!
Antes que alguém venha dizer: ‘Olha o título, esse cara num sabe nada!’ ou ‘DefaultTableModel extends AbstractTableModel!! Asshole!!!’ eu já vou dizendo: Eu sei que DefaultTableModel herda de AbstractTableModel, a ideia do título é abandonar a DefaultTableModel e criar suas próprias classes utilizando os métodos da AbstractTableModel do jeito que nos servir melhor.
Dito isso, vamos ao assunto de hoje: ‘DefaultTableModel e o porque de não utilizá-la’.
Quem já programou utilizando a API Swing e nunca utilizou a JTable que atire a primeira pedra.
Agora, quem já usou JTable e nunca utilizou a DefaultTableModel pode atirar pedras a vontade!
Aqui no blog mesmo… Eu já utilizei DefaultTabelModel em alguns posts. Mas pois bem, vamos abolir essa má prática. Seguem alguns motivos do porque não devemos utilizar a DefaultTableModel:
1. É mais difícil que escrever seu próprio TableModel;
2. É mais lento (usa classes sincronizadas);
3. Ocupa mais espaço em memória (duplica seus dados);
4. Deixa o código mais confuso e difícil de manter;
5. Usa casts inseguros;
6. Força que você tenha que exibir informações desnecessárias (como o ID) na tabela, ou controlar o ID numa lista separada;
7. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.
Motivos muito bem explicados pelo ViniGodoy neste post do GUJ.
Mas se a DefaultTableModel é tão ruim assim, o que devemos fazer? Tudo se resume a uma classe: AbstractTableModel.
Popularity: 1% [?]






