SlideShare uma empresa Scribd logo
1 de 13
CAPITULO 7
Juan Pablo Rivera
000261281
Ing sistemas e informática
Fowler Martin - Refactoring
Improving The Design Of Existing
Code
El desplazamiento de funciones es una de las decisiones mas
fundamentales a la hora de crear código esto se usa para poner
responsabilidades en las funciones, para hacer un desplazamientos
es necesario usar move method o move field , para separar las
responsabilidades de una clase se usa Extrac class , para juntar la
función con otra clase se usa inline.
Move method (Mover método)
Se centra en un método que será utilizado o llamado por
mas características de otra clase diferente de en la que
está definido.
Al mover los métodos se puede lograr que las clases sean
más simples.
Mecanismo
1-Examinar todas las características que se utilizan en el método origen.
2-Si hay otras declaraciones es posible que no se pueda hacer el movimiento
a menos que se pueda establecer un polimorfismo.
3-Copiar el código del método para que funcione en otra clase
4-Dejar el origen como un método de delegación es más fácil si se tienen
Muchas referencias.
· Si se elimina el método de origen, se debe reemplazar todas las referencias
con referencias al destino.
-Move Fielld (Mover campo)
Un campo es, o será usado por otra clase más que la clase sobre
la cual es definido ,si se Crea un nuevo campo en la clase objetivo
El movimiento del estado y el comportamiento entre clases es la
esencia misma de nueva refactorización Como el código está en
desarrollo, principalmente se encuentra la necesidad de nuevas
clases y la necesidad de revolver las responsabilidades alrededor
de Una decisión de diseño que es razonable y correcta.
mecanismo
Si el campo es público, para emplear esto se debe encapsular el Campo
.Compilar y probar.
· Crean un campo en la clase objetivo con la adquisición y el ajuste de
métodos.
· Compilan la clase objetivo.
· Determinar como referirse el objeto objetivo de la fuente.
· Quitar el campo sobre la clase origen.
· Sustituir todas las referencias al campo del origen con referencias al
método apropiado sobre el objetivo.
. Compilar y probar.
-Extract class (Extracción de clase)
Se debe Crear una nueva clase , esta debe mover los campos
relevantes y métodos de la vieja clase en la nueva clase.
Principalmente se hace una extracción de la clase en la cual se está
centrando el desarrollo,.
mecanismo
. hacer un Split a las responsabilidades de la clase.
· Crear una nueva clase para expresar las responsabilidades de separación.
. hacer un enlace entre la vieja clase y la nueva clase
Hacer un movimiento sobre cada campo que se desea mover
· Compilar la prueba después de cada movimiento.
Hide Delegate (Esconder delegado)
Se da cuando se está llamando a una clase que
delega un objeto
Se puede crear métodos en el servidor para ocultar al
delegado de la clase
mecanismo
. crear un método de delegación en el servidor por cada método creado localmente
. ajustar el cliente para que llame al servidor y haga el
llamado del método
. ·Compilar y probar después de ajustar cada método
Remove middle man
Una clase está haciendo demasiada delegación simple. Se debe
hacer que el cliente llame directamente al delegado las ventajas
de encapsular un objeto tiene un uso particular en la eficiencia y
seguridad del código, El precio es que cada vez que el cliente
quiere Nueva característica del delegado, tiene que agregar un
método de delegación simple a la clase origen. Después
Añadiendo características por un tiempo, se vuelve tedioso. La
clase origen es sólo un intermediario
Introduce foraeign method (Introducir método extranjero)
Una clase del servidor que se esta utilizando necesita un método
adicional, pero no puede modificar la clase original.
Como funciona
.Crear un método en la clase cliente .
. · Hacer una instancia de la clase servidor en el primer parámetro.
. Comentar el método como "método extranjero”, este debe estar
instanciado en el servidor.
-introducir extensión local
Una clase servidor que se está utilizando necesita varios métodos adicionales,
pero no puede modificar la clase. Se debe Crear una nueva clase que contenga
estos métodos adicionales. Adicional a esto se debe Hacer de esta clase una
extensión o una subclase de la original.
Mecanismo
· Crear una clase de extensión como una subclase o un contenedor del original.
· Agregue constructores de conversión a la extensión.
. Añada nuevas funciones a la extensión.
· Reemplace el original con la extensión donde sea necesario.
Muchas gracias

Mais conteúdo relacionado

Destaque

Destaque (14)

Chapter 5 refactoring
Chapter 5 refactoringChapter 5 refactoring
Chapter 5 refactoring
 
Construir tests
Construir testsConstruir tests
Construir tests
 
Refactoring: Improving the design of existing code. Chapter 6.
Refactoring: Improving the design of existing code. Chapter 6.Refactoring: Improving the design of existing code. Chapter 6.
Refactoring: Improving the design of existing code. Chapter 6.
 
Capitulo 2
Capitulo 2Capitulo 2
Capitulo 2
 
Continuos Delivery
Continuos DeliveryContinuos Delivery
Continuos Delivery
 
Chapter 8
Chapter 8Chapter 8
Chapter 8
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Implementing a testing strategy
Implementing a testing strategyImplementing a testing strategy
Implementing a testing strategy
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Expo 2 parametros
Expo 2   parametrosExpo 2   parametros
Expo 2 parametros
 
Continuos Delivery Commit stage
Continuos Delivery Commit stageContinuos Delivery Commit stage
Continuos Delivery Commit stage
 
Making method calls_simpler
Making method calls_simplerMaking method calls_simpler
Making method calls_simpler
 
[React-Native Tutorial] Map
[React-Native Tutorial] Map[React-Native Tutorial] Map
[React-Native Tutorial] Map
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Semelhante a Capitulo 7 moving features between objects

Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
K Manuel TN
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
K Manuel TN
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
Antonio Palomares Sender
 
Code Smell
Code SmellCode Smell
Code Smell
avature
 

Semelhante a Capitulo 7 moving features between objects (20)

JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Clase viii
Clase viiiClase viii
Clase viii
 
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Guia poo
Guia pooGuia poo
Guia poo
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetos
 
JAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIAJAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIA
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
05 Creando Clases
05   Creando Clases05   Creando Clases
05 Creando Clases
 
Code Smell
Code SmellCode Smell
Code Smell
 

Último

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
octaviosalazar18
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
macsal12345
 

Último (20)

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
INFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdfINFORME de pregrado ingenieria de vias.pdf
INFORME de pregrado ingenieria de vias.pdf
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
Tipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercialTipos de Valvulas para uso industrial y comercial
Tipos de Valvulas para uso industrial y comercial
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 

Capitulo 7 moving features between objects

  • 1. CAPITULO 7 Juan Pablo Rivera 000261281 Ing sistemas e informática Fowler Martin - Refactoring Improving The Design Of Existing Code
  • 2. El desplazamiento de funciones es una de las decisiones mas fundamentales a la hora de crear código esto se usa para poner responsabilidades en las funciones, para hacer un desplazamientos es necesario usar move method o move field , para separar las responsabilidades de una clase se usa Extrac class , para juntar la función con otra clase se usa inline.
  • 3. Move method (Mover método) Se centra en un método que será utilizado o llamado por mas características de otra clase diferente de en la que está definido. Al mover los métodos se puede lograr que las clases sean más simples.
  • 4. Mecanismo 1-Examinar todas las características que se utilizan en el método origen. 2-Si hay otras declaraciones es posible que no se pueda hacer el movimiento a menos que se pueda establecer un polimorfismo. 3-Copiar el código del método para que funcione en otra clase 4-Dejar el origen como un método de delegación es más fácil si se tienen Muchas referencias. · Si se elimina el método de origen, se debe reemplazar todas las referencias con referencias al destino.
  • 5. -Move Fielld (Mover campo) Un campo es, o será usado por otra clase más que la clase sobre la cual es definido ,si se Crea un nuevo campo en la clase objetivo El movimiento del estado y el comportamiento entre clases es la esencia misma de nueva refactorización Como el código está en desarrollo, principalmente se encuentra la necesidad de nuevas clases y la necesidad de revolver las responsabilidades alrededor de Una decisión de diseño que es razonable y correcta.
  • 6. mecanismo Si el campo es público, para emplear esto se debe encapsular el Campo .Compilar y probar. · Crean un campo en la clase objetivo con la adquisición y el ajuste de métodos. · Compilan la clase objetivo. · Determinar como referirse el objeto objetivo de la fuente. · Quitar el campo sobre la clase origen. · Sustituir todas las referencias al campo del origen con referencias al método apropiado sobre el objetivo. . Compilar y probar.
  • 7. -Extract class (Extracción de clase) Se debe Crear una nueva clase , esta debe mover los campos relevantes y métodos de la vieja clase en la nueva clase. Principalmente se hace una extracción de la clase en la cual se está centrando el desarrollo,.
  • 8. mecanismo . hacer un Split a las responsabilidades de la clase. · Crear una nueva clase para expresar las responsabilidades de separación. . hacer un enlace entre la vieja clase y la nueva clase Hacer un movimiento sobre cada campo que se desea mover · Compilar la prueba después de cada movimiento.
  • 9. Hide Delegate (Esconder delegado) Se da cuando se está llamando a una clase que delega un objeto Se puede crear métodos en el servidor para ocultar al delegado de la clase mecanismo . crear un método de delegación en el servidor por cada método creado localmente . ajustar el cliente para que llame al servidor y haga el llamado del método . ·Compilar y probar después de ajustar cada método
  • 10. Remove middle man Una clase está haciendo demasiada delegación simple. Se debe hacer que el cliente llame directamente al delegado las ventajas de encapsular un objeto tiene un uso particular en la eficiencia y seguridad del código, El precio es que cada vez que el cliente quiere Nueva característica del delegado, tiene que agregar un método de delegación simple a la clase origen. Después Añadiendo características por un tiempo, se vuelve tedioso. La clase origen es sólo un intermediario
  • 11. Introduce foraeign method (Introducir método extranjero) Una clase del servidor que se esta utilizando necesita un método adicional, pero no puede modificar la clase original. Como funciona .Crear un método en la clase cliente . . · Hacer una instancia de la clase servidor en el primer parámetro. . Comentar el método como "método extranjero”, este debe estar instanciado en el servidor.
  • 12. -introducir extensión local Una clase servidor que se está utilizando necesita varios métodos adicionales, pero no puede modificar la clase. Se debe Crear una nueva clase que contenga estos métodos adicionales. Adicional a esto se debe Hacer de esta clase una extensión o una subclase de la original. Mecanismo · Crear una clase de extensión como una subclase o un contenedor del original. · Agregue constructores de conversión a la extensión. . Añada nuevas funciones a la extensión. · Reemplace el original con la extensión donde sea necesario.