Classes Utilitárias

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 :smiley:

Obrigado pelas dicas… É que como isso é usado no sistema inteiro, cada if, cada coleção, etc… achei que esse abuso poderia prejudicar …