Estou fazendo um projetinho pra estudar aqui, o qual necessito usar vários ifs para testar as entradas do usuário (todas elas via JTable) são do tipo esperado.
[code]public class Cliente {
private String nome;
private String cpf;
//outros tanto atributos …
}[/code]
Só que estou usando um controlador (uma classe que criei que coloco como listener da JTable que contem a lista de clientes)
[code]public class ClienteController implements TableModelListener{
@Override
public void tableChanged(TableModelEvent e) {
//aqui faço todos meus ifs pegando os valores das células da tabela para verificar se não são nulos e do tipo esperado
}
}[/code]
É justamente no tableChanged da ClienteController que acho que está estranho (o uso de até 15 ifs ou um switch de 15 comparações). Parece muito programação estruturada. Há uns dois anos eu estudei alguns padrões de projeto, e se não me engano, o Strategy Pattern pode ajudar a solucionar esse meu problema. Tô no caminho certo? Alguem pode ajudar com algum link ou exemplo?
Primeiramente, muito obrigado pelo link (vou poder lê-lo apenas a noite, em casa).
Mas uma dúvida ainda ronda: esses ifs em meu código (na validação, verificando se os atributos da classe Cliente tem algum valor nulo) é uma má forma de trabalhar com Orientação a Objetos?
Primeiramente, muito obrigado pelo link (vou poder lê-lo apenas a noite, em casa).
Mas uma dúvida ainda ronda: esses ifs em meu código (na validação, verificando se os atributos da classe Cliente tem algum valor nulo) é uma má forma de trabalhar com Orientação a Objetos?
Obrigado, abraços. [/quote]
As vezes não da para fugir de um if ou outro…
MAS 15??? pq isso tudo…
Então, nesse caso nenhum pode ser nulo mesmo. Quanto aos 15 ifs, é pra mandar a mensagem pro usuário de qual o campo que não foi preenchido (ou preenchido com tipo de dado não esperado), isso tudo pq a atualização na JTable faz a persistência no MySQL. Mais ou menos assim:
[code]public class ClienteController implements TableModelListener{
@Override
public void tableChanged(TableModelEvent e) {
if (validador.isString(tabelaFornecedor.getTabelaFornecedores().getModel().getValueAt(linhaSelecionada, NOME))) {
msg = "Nome deve ser preenchido";
}
}
} [/code]
Depois uso a variável msg pra exibir pro usuário.
Não tem nenhum framework pra swing pra fazer esse tipo de validação? Se não tiver, tô pensando em fazer um próprio com anotações.
Novamente muito obrigado pela ajuda, um grande abraço.
Vou dar uma estudada mais a fundo em anotações e reflection pra começar esse mini framework logo, quero terminar até o fim do ano, e seria ótimo ter vc ajudando. Assim que eu começar te aviso por email.