Usando a Refatoração ExtractMethod – Codigo Original
package extractMethod.exemplo1original;
import javax.swing.JOptionPane;
/* Código Original */
public class Sorteio {
public static Object Sorteio;
private int numero;
Sorteio() {
numero = (int) (1 + (Math.random() * 10)); // sorteia numeros entre 1 e 10
}
public int getNumero() {
return this.numero;
}
public void setNumero(int n) {
numero = n;
}
public static void main(String args[]) {
Sorteio Sorteio1 = new Sorteio();
int resposta = Integer.parseInt(JOptionPane.showInputDialog(“Informe o valor entre 1 e 10″));
if (resposta == Sorteio1.getNumero()) {
JOptionPane.showMessageDialog(null, “Você acertou o primeiro sorteio”);
} else {
JOptionPane.showMessageDialog(null,
“Você errou o primeiro sorteio. \n O valor sorteado foi ” + Sorteio1.getNumero());
}
{
Sorteio Sorteio2 = new Sorteio();
int resposta2 = Integer.parseInt(JOptionPane.showInputDialog(“Informe um valor entre 1 e 10″));
if (resposta2 == Sorteio2.getNumero()) {
JOptionPane.showMessageDialog(null, “Você acertou o segundo sorteio”);
} else {
JOptionPane.showMessageDialog(null,”Você errou o segundo sorteio. \n O valor sorteado foi “ + Sorteio2.getNumero());
}
}
{
Sorteio Sorteio3 = new Sorteio();
int resposta3 = Integer.parseInt(JOptionPane
.showInputDialog(“Informe um valor entre 1 e 10″));
if (resposta3 == Sorteio3.getNumero()) {
JOptionPane.showMessageDialog(null, “Você acertou o terceiro sorteio”);
} else {
JOptionPane.showMessageDialog(null,
“Você errou o terceiro sorteio. \n O valor sorteado foi ” + Sorteio3.getNumero());
}
System.exit(0);
}
}
}
Usando a Refatoração ExtractMethod Código Refatorado.
/* Refactoring por csvirgens */
package extractMethod.exemplo1refatorado;
public class Sorteio {
public static Object Sorteio;
private int numero;
//Construtor
Sorteio() {
numero = (int) (1 + (Math.random() * 10)); // sorteia numeros entre 1 e 10
}
// Métodos Acessores
public int getNumero() { return this.numero; }
public void setNumero(int n) { numero = n; }
}
package extractMethod.exemplo1refatorado;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class SorteioUtil {
/**
* Refatorcao do tipo ExtractMethod, Depois foi movido para a classe
* SorteioUtil, usando a refatoracao MoveMethod
*
* @param Sorteio1
* @param Sorteio2
* @param Sorteio3
* @throws NumberFormatException
* @throws HeadlessException
*/
public static void executarSorteios(Sorteio Sorteio1, Sorteio Sorteio2, Sorteio Sorteio3)
throws NumberFormatException, HeadlessException {
int resposta = Integer.parseInt(JOptionPane.showInputDialog(“Informe o valor entre 1 e 10″));
if (resposta == Sorteio1.getNumero()) {
JOptionPane.showMessageDialog(null, “Você acertou o primeiro sorteio”);
} else {
JOptionPane.showMessageDialog(null,
“Você errou o primeiro sorteio. \n O valor sorteado foi “+ Sorteio1.getNumero());
}
int resposta2 = Integer.parseInt(JOptionPane .showInputDialog(“Informe um valor entre 1 e 10″));
if (resposta2 == Sorteio2.getNumero()) {
JOptionPane.showMessageDialog(null, “Você acertou o segundo sorteio”);
} else {
JOptionPane .showMessageDialog(null, “Você errou o segundo sorteio. \n O valor sorteado foi “
+ Sorteio2.getNumero());
}
int resposta3 = Integer.parseInt(JOptionPane.showInputDialog(“Informe um valor entre 1 e 10″));
if (resposta3 == Sorteio3.getNumero()) {
JOptionPane.showMessageDialog(null, “Você acertou o terceiro sorteio”);
} else {
JOptionPane.showMessageDialog(null, “Você errou o terceiro sorteio. \n O valor sorteado foi “
+ Sorteio3.getNumero());
}
System.exit(0);
}
}
package extractMethod.exemplo1refatorado;
public class Main {
/**
* O método Main da Classe Sorteio foi movido para a Classe Main.java,
* usando a Refatoracao Move Method
*/
public static void main(String args[]) {
Sorteio Sorteio1 = new Sorteio();
Sorteio Sorteio2 = new Sorteio();
Sorteio Sorteio3 = new Sorteio();
// Chamando o método executarSorteio (criado com a refatoração extractMethod)
SorteioUtil.executarSorteios(Sorteio1, Sorteio2, Sorteio3);
}
}