Código ruim:

public interface Constantes {
    String versao = "1.0";
    String formatoData = "dd/MM/yyyy";
    String arquivoDeConfiguracao = 
        ".config";
    int tamanhoMaximoNome = 32;
    String algumaConsulta = 
        "SELECT * FROM ...";
}

Frequentemente visto em projetos grandes: uma classe ou interface que contém todo tipo de constantes que são usadas ao longo da aplicação inteira. Por que isto é ruim? Porque estas constantes não tem relação entre si. Esta classe é a única coisa que elas têm em comum. E a referência a esta classe polui muitos outros componentes da aplicação. Você quer posteriormente extrair um componente e usá-lo em outra aplicação? Ou compartilhar algumas classes entre um servidor e um cliente remoto? Você talvez tenha que levar junto a classe de constantes também! Esta classe cria uma dependência entre componentes que não são relacionados. Isso inibe o reuso e o baixo acoplamento, e pode levar ao caminho do caos. Em vez disso, coloque as constantes no local ao qual elas pertencem. Constantes jamais devem ser usadas fora dos limites do componente. Isto somente é permitido se o componente é uma biblioteca, no qual uma dependência explícita é desejada.