Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Catálogo
Alejandra Garrido
Objetos 2
Facultad de
Informática - UNLP
Importancia del refactoring
n Indicios de
problemas que
requieren la
aplicación de
refactorings
n Posteriormente
llamados
CODE SMELLS
Alejandra Garrido - Objetos 2 - UNLP 4
Algunos code smells
n Duplicate Code
n Large Class
n Long Method
n Data Class
n Feature Envy
n Long Parameter List
n Switch Statements
Alejandra Garrido - Objetos 2 - UNLP 5
Code smell: Código duplicado
n Problemas:
¡ Hace el código más largo de lo que necesita ser
¡ Es difícil de cambiar, dificil de mantener
¡ Un bug fix en un clone no es fácilmente propagado a los
demás clones
https://www.youtube.com/watch?v=D4auWwMsEnY
Alejandra Garrido - Objetos 2 - UNLP 13
Catálogo de refactorings
n Composición de métodos
n Mover aspectos entre objetos
n Organización de datos
n Simplificación de expresiones condicionales
n Simplificación en la invocación de métodos
n Manipulación de la generalización
n Big refactorings
if (date.before(SUMMER_START) || date.after(SUMMER_END))
charge = quantity * winterRate + winterServiceCharge;
else
charge = quantity * summerRate;
if (notSummer(date))
charge = winterCharge();
else
charge = summerCharge();
Alejandra Garrido - Objetos 2 - UNLP 22
Simplificación de invocación
de métodos
n Sirven para n Rename Method
mejorar la interfaz de n Preserve Whole Object
una clase n Introduce Parameter
Object
n Parameterize Method