Olá Pessoal, recentemente em um projeto, me deparei com uma classe que é utilizada por todo o sistema para fazer validações, chamada ValidacaoUtils.
A seguir alguns métodos que ela possui :
public static boolean isEmptyString(String value) {
if (value == null || value.trim().isEmpty()) {
return true;
} else {
return false;
}
}
public static boolean isEmptyCollection(Collection value) {
if (value == null || value.isEmpty()) {
return true;
} else {
return false;
}
}
E esses métodos são chamados por todo o sistema. Gostaria de saber se realmente é necessário ter esse tipo de classe para fazer tratamentos, pois quem desenvolveu disse que é uma boa prática, ou se isso é bizarro.
Obrigado à todos
Henrique
Olá,
Eu não vejo nada de errado. Os métodos validam algo, e retornam true ou false.
Quanto a boa prática, sempre depende… Como é uma classe especializada nisso e nela você tem somente métodos estáticos que não alteram o estado do objeto da classe e que não devem alterar o estado de outros objetos, não há problema algum. É necessário tomar cuidado para o sistema não vire um amontoado de métodos estáticos, pq ai vai virar programação estruturada e não orientada a objetos. Note que na API do Java existem MUITOS métodos estáticos em MUITAS classes. Note que eles SEMPRE são “utilitários”. Alguns exemplos:
Classe DriverManager (getConnection, etc).
Classe String (valueOf, format)
Os wrappers (Integer, Double, etc) tem váááários métodos estáticos.
[]´s
Este trecho de código particularmente tornou a lógica nas outras classes mais legível e economizou algumas linhas, então acho válido. Mas quando essa classe de validação crescer demais(ou se de antemão existe essa expectativa), talvez seja a hora de especializá-la em classes menores e mais coesas.
return value == null || value.trim().isEmpty();
mais DRY e simples 
Obrigado pelas dicas… É que como isso é usado no sistema inteiro, cada if, cada coleção, etc… achei que esse abuso poderia prejudicar …