Tudo começa com um simples programa que imprime o nome e o sobrenome.
package exemplo.entidade;
public class Testadora {
public static void main(String[] args) {
mostrarNome();
mostrarSobrenome();
}
private static void mostrarSobrenome() {
System.out.print("Sobrenome ");
}
private static void mostrarNome() {
System.out.print("Nome ");
}
}
Alguém resolve fatorá-lo, resolve deixar tudo em um único local.
package exemplo.entidade;
public class Testadora {
public static final int NOME = 10;
public static final int SOBRENOME = 20;
public static void main(String[] args) {
mostrarNome();
mostrarSobrenome();
}
private static void mostrarSobrenome() {
mostrar(SOBRENOME);
}
private static void mostrarNome() {
mostrar(NOME);
}
private static void mostrar(int tipo) {
if (tipo==NOME){
System.out.print("Nome ");
}else if(tipo==SOBRENOME){
System.out.print("Sobrenome ");
}
}
}
A principio parece estar agregando mais complexidade a algo que deveria simplesmente fazer algo trivial. Um terceiro resolve retirar os "mediadores".
package exemplo.entidade;
public class Testadora {
public static final int NOME = 10;
public static final int SOBRENOME = 20;
public static void main(String[] args) {
mostrar(NOME);
mostrar(SOBRENOME);
}
private static void mostrar(int tipo) {
if (tipo==NOME){
System.out.print("Nome ");
}else if(tipo==SOBRENOME){
System.out.print("Sobrenome ");
}
}
}
Um quarto metido a espertinho realiza uma mudança que deixa o código bem mais simpático.
package exemplo.entidade;
public class Testadora {
public static final int NOME = 10;
public static final int SOBRENOME = 20;
public static void main(String[] args) {
mostrar(NOME+SOBRENOME);
mostrar(NOME);
mostrar(SOBRENOME);
}
private static void mostrar(int tipo) {
if (tipo==NOME){
System.out.print("Nome ");
}else if(tipo==SOBRENOME){
System.out.print("Sobrenome ");
}if (tipo==NOME+SOBRENOME){
System.out.print("Nome Sobrenome ");
}
}
}
Fica simples e objetivo o propósito mostrar o nome e o sobrenome. :)
ps: favor notar que o post não discute o fato de usar ou não polimorfismo, apenas mostra um modo elegante de se aproveitar o uso de constantes.
Nenhum comentário:
Postar um comentário