Sabe aquele monte de “if” e “else” no código? Limpando tudo em Java.
Uma das coisas que considero mais ruins de se ler em um código são os malditos ifs encadeados. Veja, não é fácil de se ler, não é confiável e bem mais propício a bug. Portando se tem muitos ifs, algo não está correto.
Vou utilizar polimorfismo para implementar o padrão de projeto Strategy.
Um fiz um caso simples apenas para exemplificar o estudo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class StringUtils { public static final String REMOVE_ALL_SPACES = "remove-all-spaces"; public static final String FILTER_ONLY_NUMBERS = "filter-only-numbers"; public static String format(String action, String value) { if (REMOVE_ALL_SPACES.equals(action)) { return value.replaceAll("\\s", ""); } else if (FILTER_ONLY_NUMBERS.equals(action)) { return value.replaceAll("\\D", ""); } return null; } } |
Bom não é tão feio, pq tb quem nunca viu algo pior que isso que atire a primeira pedra.
Vamos fazer com que esse método format seja mais simples. No caso ele está com apenas duas comparações, mas lembre-se que poderiam ser 18.
Mas dá pra melhorar e muito utilizando Enum. Veja:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public enum StringFormat { TRIM_SPACES() { @Override public String format(String value) { return value.replaceAll("\\s", ""); } }, ONLY_NUMBERS() { @Override public String format(String value) { return value.replaceAll("\\D", ""); } }; public abstract String format(String value); } |
E agora o nosso objetivo final, remover os ifs e else do método format:
1 2 3 4 5 6 | public class StringUtils { public static String format(StringFormat action, String value) { return action.format(value); } } |
Legal né?

É isso ae, sejamos todos adeptos http://www.antiifcampaign.com/
kkk boa heim já adicionado no blog
Bem bacana já me deparei com uns 8 “ifs” em códigos. e é um saco principalmente para dar manutenção.
Muito Legal.