Está en la página 1de 6

Men de Refactoring en NetBeans

Teniendo las siguientes clases de Java en nuestro proyecto NetBeans (proyecto llamado
PruebaCirculo):
Circulo.java
public class Circulo {
private int !
private int y!
private double radio!
public Circulo()
{
"
## constructor
public Circulo( int valor$% int valor&% double valor'adio )
{
( valor$!
y ( valor&!
establecer'adio( valor'adio )!
"
public void establecer$( int valor$ )
{
( valor$!
"
public int obtener$()
{
return !
"
public void establecer&( int valor& )
{
y ( valor&!
"
public int obtener&()
{
return y!
"
public void establecer'adio( double valor'adio )
{
radio ( ( valor'adio ) *.* + *.* : valor'adio )!
"
public double obtener'adio()
{
return radio!
"
public double obtener,iametro()
{
return - . radio!
"
public double obtenerCircun/erencia()
{
return 0at1.P2 . obtener,iametro()!
"
public double obtener3rea()
{
return 0at1.P2 . radio . radio!
"
public 4tring to4tring()
{
return 5Centro ( 65 7 7 5% 5 7 y 7 58! 'adio ( 5 7 radio!
"
PruebaCirculo.java
import java.tet.,ecimal9ormat!
import java.s:ing.J;ptionPane!
public class PruebaCirculo {
public static void main( 4tring68 args )
Circulo circulo ( ne: Circulo( <=% ><% -.? )!
4tring salida ( 5@a coordenada $ es 5 7 circulo.obtener$() 7
5An@a coordenada & es 5 7 circulo.obtener&() 7
5AnBl radio es 5 7 circulo.obtener'adio()!
circulo.establecer$( <? )!
circulo.establecer&( -* )!
circulo.establecer'adio( >.-? )!
salida 7( 5AnAn@a nueva ubicaciCn y el radio del cDrculo sonAn5 7
circulo.to4tring()!
,ecimal9ormat dos,igitos ( ne: ,ecimal9ormat( 5*.**5 )!
salida 7( 5AnBl diEmetro es 5 7
dos,igitos./ormat( circulo.obtener,iametro() )!
salida 7( 5An@a circun/erencia es 5 7
dos,igitos./ormat( circulo.obtenerCircun/erencia() )!
salida 7( 5AnBl Erea es 5 7 dos,igitos./ormat( circulo.obtener3rea() )!
J;ptionPane.s1o:0essage,ialog( null% salida )!
4ystem.eit( * )!
" ## /in de main
" ## /in de la clase PruebaCirculo
@a estructura de nuestras carpetas en el proyecto NetBeans serE la siguiente:
9igure F9igure F (grap1icsF.png)
9igura F. GisiCn del proyecto NetBeans con las clases java
4i nos situamos en cualHuiera de nuestras clases y botCn derec1o% obtenemos el siguiente menI%
donde podemos observar Hue tenemos la opciCn re/actoriJar:
9igure -9igure - (grap1ics-.png)
9igura -. 0enI de 'e/actoriJar
3 continuaciCn% se encuentra una breve descripciCn de las di/erentes opciones del menI:
'enombrar K Cambia el nombre de una clase% variable o mLtodo. 3dicionalmente modi/ica todo
el cCdigo del proyecto para re/erenciar al nuevo nombre.
9igure <9igure < (grap1ics<.png)
9igura <. ;pciCn renombrar
Cambiamos el nombre Circulo por Circulitos y observamos los cambios en el cCdigo Hue donde
ponDa Circulo a1ora pone Circulitos:
9igure >9igure > (grap1ics>.png)
9igura >. Cambios al aplicar 'enombrar
Cambiar parEmetros de un mLtodo K Permite agregar% eliminar% modi/icar o cambiar el orden de
los parEmetros de un mLtodo% al igual Hue su modi/icador de acceso (private o public).
Bncapsular campos K Bs muy comIn tener Hue acceder a los campos de una clase por medio de
operaciones del tipo:
public set)nombre del campoM(...)
public get)nombre del campoM()
Bs una tarea muy tediosa% por lo cual esta operaciCn permite Hue el programador solo deba
implementar los campos% delegando a NetBeans la tarea de NencapsularlosO. TambiLn es posible Hue
todo cCdigo del proyecto Hue accede directamente al campo% pase automEticamente a utiliJar el
NsetterO o el NgetterO determinado.
3scender mLtodos o campos K Permite subir un mLtodo o campo a otra clase de la cual 1ereda la
clase Hue contiene al mLtodo o campo Hue deseamos subir.
,escender clases anidadas% mLtodos o campos K Permite bajar una clase anidada% mLtodo o
campo a otra clase la cual 1ereda de la clase Hue contiene a la clase anidada% mLtodo o campo Hue
deseamos bajar.
0over una clase K 0ueve una clase a otro pacPage o dentro de otra clase. 3dicionalmente
modi/ica todo el cCdigo del proyecto para re/erenciar al nuevo lugar donde se moviC la clase.
9igure ?9igure ? (grap1ics?.png)
9igura ?. ;pciCn 0over clase
Convertir una clase anCnima anidada a una clase anidada K Crea una nueva clase anidada% la
cual tendrE un nombre y un constructor. @a clase anCnima anidada serE sustituida por esta nueva
clase anidada.
Btraer una inter/ase K Permite seleccionar cuales mLtodos pIblicos no estEticos de una clase o
inter/ase% irEn a parar a una nueva inter/ase. @a clase de la cual /ue etraDda la inter/ase
implementarE la nueva inter/ase creada. @a inter/ase de la cual /ue etraDda la inter/ase etenderE la
nueva inter/ase.
9igure Q9igure Q (grap1icsQ.png)
9igura Q. ;pciCn Btraer inter/aJ
Btraer una superclase K ,espliega al programador los mLtodos y campos Hue se pueden mover
a una superclase. Bl programador selecciona cuales desea mover y NetBeans crearE una nueva clase
abstracta Hue contendrE dic1os campos y mLtodos% tambiLn 1arE Hue la clase re/actoriJada la
etienda.
9igure =9igure = (grap1ics=.png)
9igura =. ;pciCn Btraer superclase
Rsar supertipo cuando sea posible K ,espliega al programador todas las clases Hue etiende la
clase actual. Bl programador seleccionarE una% y NetBeans buscarE en todo el proyecto re/erencias a
la clase Hue se Huiere re/actoriJar% si encuentra re/erencias% determinarE si es posible utiliJar la
superclase seleccionada.
9igure S9igure S (grap1icsS.png)
9igura S. ;pciCn Rsar supertipo cuando sea posible
BliminaciCn seguro K Cuando eliminamos un mLtodo o clase% debemos garantiJarnos de Hue
nadie mEs lo utilice en el proyecto. Bsta operaciCn veri/ica y noti/ica las re/erencias encontradas%
proveyendo de mecanismos para Hue /Ecilmente el programador pueda eliminar una a una las
re/erencias% para /inalmente llevar a cabo la operaciCn de borrado de modo seguro.
9igure T9igure T (grap1icsT.png)
9igura T. ;pciCn BliminaciCn segura
2ntroducir constantes% variables% campos o mLtodos K Bl programador selecciona un /ragmento
de cCdigo% y luego presiona las teclas )altM7)BnterM. NetBeans desplegarE varias opciones Itiles%
como encapsular ese /ragmento en un mLtodo y re/erenciar al mLtodo% anidarse en :1ile% i/% etc.
4iempre Hue sea posible% utiliJar las 1erramientas de re/actoring Hue NetBeans provee% de este
modo no solo serE muc1o mEs sencillo este tipo de procedimiento% sino Hue ademEs ejecutaremos
un proceso seguro mediante el cual no introduciremos errores 1umanos.

También podría gustarte