Validação com if ou switch - Padrões de Projeto

Boa tarde pessoal,

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{

private TabelaCliente tabelaCliente ;

public ClienteController() {

this.tabelaCliente.getModel.addTableModelListener(this);

}

@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?

Muito obrigado desde já. Abraços.

http://java.sun.com/developer/technicalArticles/J2SE/constraints/annotations.html
(Cuidado - ele usa uma tecnologia ultrapassada, que é a “apt” - fora isso, a idéia dele é interessante.)

Olá entanglement,

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=$ERVER]Olá entanglement,

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…

	if(Strings.isNullOrEmpty(campo) || Strings.isNullOrEmpty(campo2) ){ 
                 //erro
        }

todos esses 15 atributos, nenhum pode ficar null ?

Olá d34d_d3v1l ,

Muito obrigado por ajudar aqui.

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{

private TabelaCliente tabelaCliente ;

public ClienteController() {

this.tabelaCliente.getModel.addTableModelListener(this);  

}

@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.

Então cara,
não conheço pra Swing.

Mas cria um tópico com essa pergunta… O pessoal mais experiente pode te dizer melhor…
algo como “Framework (swing) para validação”…

Se não existir e vc quiser fazer…
faça open-source que eu te ajudo…
vai meu email

mtnoronha7@gmail.com
abrazz

Opa, brigadão d34d_d3v1l.

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.

Grande abraço.