Está en la página 1de 6

EJERCICIOS REFACTORIZACIÓN

Hay que entregar un documento que incluya capturas del código antes de aplicar la
refactorización y después, e indicar el método que se ha aplicado.

1.- Extraer la cadena “string” a una contante llamada CADENA

public class Class {


public void method() {
ArrayList list = new ArrayList();
list.add("string");
anotherMethod("string");
}
private void anotherMethod(String string) {
}
}

a) Seleccionamos el string de list.add

b) Nos vamos a refactor y seleccionamos extract constant

c) Se nos abrira una ventana , ponemos en name cadena y damos ok

d) Y ya nos crearia la constante

2.- Extraer la variable anotherClass.intValue(); a un atributo privado de tipo entero


llamado número.

public class Class {


AnotherClass anotherClass;
public void method() {
int a = 1;

int b = a + anotherClass.intValue();
int c = b + anotherClass.intValue();
}
}
a) Seleccionamos la varibale

b) Vamos a Refactor y seleccionamos extract local variable

c) Se nos abrirá una ventana ponemos de nombre de la variable numero

d) Se nos creara la variable, ahora debemos crear el atributo


privado,para ello lo que vamos a hacer es seleccionar la línea
creada e irnos a refactor y seleccionar convert local variable to
field.

e) Se nos abrirá una ventana seleccionamos private y dejamos de nombre


numero

f) Quedaria de esta forma:

3.- Extraer la expresión a+b a un método llamado add y reemplazar duplicados

public void method() {


int a=1;
int b=2;
int c=a+b;
int d=a+c;
}

a) Seleccionamos a+b

b) Nos vamos a refactor y seleccionamos extract method

c) Se nos abrira una ventana, ponemos en nombe add y damos ok

d) Quedaría de esta forma

4.- Refactorizar los siguientes métodos para que se utilice en cada uno únicamente una
variable.

public void method() {


int number = anotherClass.intValue();
int b = a + number;
}

public void method() {


AnotherClass.InnerClass aClass = anotherClass.innerClass;
int a = aClass.i;
}
a) Seleccionamos el int number primero

b) Nos vamos a refactor y elegimos inline

c) Se nos abrira una ventana y damos ok

d) Y se nos creara la variable

e) Repetiremos el mismo proceso con anotherclass.inner…

5.- Tenemos una clase con demasiadas responsabilidades y queremos extraer algunas de ellas
a una nueva clase por lo que vamos a extraer algunos atributos y métodos a una nueva clase:

• Los atributos y métodos a extraer son los que aparecen sombreados en el código.
• La nueva clase se llamará TelephoneNumber
• Mover los métodos necesarios a la nueva clase
• Eliminar los getters y setters de los atributos movidos en el paso 1 de la clase original.

1public class Person {


2 private String _name;
3 private String _officeAreaCode;
4 private String _officeNumber;
5
6 public String getTelephoneNumber() {
7 return ("(" + _officeAreaCode + ") " + _officeNumber);
8 }
9 // GETTERS AND SETTERS
10 public String getName() {
11 return _name;
12 }
13 public String getOfficeAreaCode() {
14 return _officeAreaCode;
15 }
16 public void setOfficeAreaCode(final String arg) {
17 _officeAreaCode = arg;
18 }
19 public String getOfficeNumber() {
20 return _officeNumber;
21 }
22 public void setOfficeNumber(final String arg) {
23 _officeNumber = arg;
24 }
25}
a) Primero nos dirigimos a refactor y seleccionamos extract class

b) Se nos abrira una ventana en name pondremos TelephoneNumber, deseleccionaremos


el string name y damos ok
c) Ahora usaremos extract methos para mover los metodos

También podría gustarte