SlideShare una empresa de Scribd logo
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

Más contenido relacionado

Destacado

Chapter 5 refactoring
Chapter 5 refactoringChapter 5 refactoring
Chapter 5 refactoring
Juan Lopez Restrepo
 
Construir tests
Construir testsConstruir tests
Construir tests
Daniel Giraldo
 
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.
Andrés Callejas González
 
Capitulo 2
Capitulo 2Capitulo 2
Continuos Delivery
Continuos DeliveryContinuos Delivery
Continuos Delivery
Andrés Callejas González
 
Chapter 8
Chapter 8Chapter 8
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
Juan Camilo Calderon
 
Implementing a testing strategy
Implementing a testing strategyImplementing a testing strategy
Implementing a testing strategy
Daniel Giraldo
 
Design patterns
Design patternsDesign patterns
Expo 2 parametros
Expo 2   parametrosExpo 2   parametros
Expo 2 parametros
Juan Lopez Restrepo
 
Continuos Delivery Commit stage
Continuos Delivery Commit stageContinuos Delivery Commit stage
Continuos Delivery Commit stage
Diego Alejandro Rios Londoño
 
Making method calls_simpler
Making method calls_simplerMaking method calls_simpler
Making method calls_simpler
Diego Alejandro Rios Londoño
 
[React-Native Tutorial] Map
[React-Native Tutorial] Map[React-Native Tutorial] Map
[React-Native Tutorial] Map
Kobkrit Viriyayudhakorn
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
Amit Ranjan
 

Destacado (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
 

Similar a Capitulo 7 moving features between objects

JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
Eric Gustavo Coronel Castillo
 
Clase viii
Clase viiiClase viii
Unidad II_1.pptx
Unidad II_1.pptxUnidad II_1.pptx
Unidad II_1.pptx
Arigol15Gomez
 
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
Angel Vázquez Patiño
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
Andres Herrera Rodriguez
 
Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
Eduardo García
 
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
José Antonio Sandoval Acosta
 
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
 
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptxPOO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
JulianRollins1
 
Guia poo
Guia pooGuia poo
Guia poo
Sergio Barbar
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
Angel Vázquez Patiño
 
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
Juan Carlos Espinoza
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
202100941c
 
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
Andres Herrera Rodriguez
 
JAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIAJAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIA
Eric Gustavo Coronel Castillo
 
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
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
Cesar Mcfly
 
05 Creando Clases
05   Creando Clases05   Creando Clases
05 Creando Clases
Network Sens
 

Similar 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
 
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptxPOO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
 
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
 

Último

Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
jahirrtorresa
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
KarinToledo2
 
1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf
raulnilton2018
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
JuanCarlos695207
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
DanielaLoaeza5
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
GERARDO GONZALEZ
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
Augusto César Dávila Callupe
 
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docxINFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
LuzdeFatimaCarranzaG
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
ronnyrocha223
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
raul958375
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
KeylaArlethTorresOrt
 

Último (20)

Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
 
1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
 
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docxINFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
 

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.