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

PPTX
Refactoring: improving the desing of existing code Cap 1
PPTX
Presentaciones de la_instruccion_for
PDF
Pattern template
DOCX
Procedimientos en visual basic
PPTX
Funciones en visual basic
PPTX
Analisis de problemas
PPTX
procedimientos (programación)
PPTX
Tema de algoritmos. Clasificación de algoritmos.
Refactoring: improving the desing of existing code Cap 1
Presentaciones de la_instruccion_for
Pattern template
Procedimientos en visual basic
Funciones en visual basic
Analisis de problemas
procedimientos (programación)
Tema de algoritmos. Clasificación de algoritmos.

Destacado (14)

PPTX
Chapter 5 refactoring
PPTX
Construir tests
PPTX
Refactoring: Improving the design of existing code. Chapter 6.
PPTX
PPTX
Continuos Delivery
PPTX
Continuous delivery
PPTX
Implementing a testing strategy
PPTX
PPTX
Expo 2 parametros
PPT
Continuos Delivery Commit stage
PPTX
Making method calls_simpler
PDF
[React-Native Tutorial] Map
PDF
SlideShare 101
Chapter 5 refactoring
Construir tests
Refactoring: Improving the design of existing code. Chapter 6.
Continuos Delivery
Continuous delivery
Implementing a testing strategy
Expo 2 parametros
Continuos Delivery Commit stage
Making method calls_simpler
[React-Native Tutorial] Map
SlideShare 101
Publicidad

Similar a Capitulo 7 moving features between objects (20)

PDF
JAVA 00 - TEMA 05 - HERENCIA
PPTX
Unidad II_1.pptx
PPTX
Programación 3: clases derivadas y polimorfismo
PDF
03 java poo_parte_2
PDF
Laboratorio clase abstract
PPT
Clases y objetos
PPTX
Programación Orientada a Objetos - Unidad 2: clases y objetos
DOCX
Mapa conceptual del contenido de la unidad 4
DOCX
Mapa conceptual del contenido de la unidad 4
PDF
Unidad 4. Herencia y Polimorfismouskssss
PPTX
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
PPTX
Guia poo
PPTX
Programación 1: modularización
PPTX
Clases en Java y todo lo relacionado
PDF
secme-23192.pdf
PDF
Lenguaje de programacion unidad 2 clases y objetos
PDF
JAVA ORIENTADO A OBJETOS - HERENCIA
PPTX
Framework .NET 3.5 07 Programación orientada a objetos
DOCX
Cesar adrian barrios alarcon unidad 2
JAVA 00 - TEMA 05 - HERENCIA
Unidad II_1.pptx
Programación 3: clases derivadas y polimorfismo
03 java poo_parte_2
Laboratorio clase abstract
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 4
Unidad 4. Herencia y Polimorfismouskssss
POO Unidad 2 con Java temario de unidad sobre clases, herencia, métodos.pptx
Guia poo
Programación 1: modularización
Clases en Java y todo lo relacionado
secme-23192.pdf
Lenguaje de programacion unidad 2 clases y objetos
JAVA ORIENTADO A OBJETOS - HERENCIA
Framework .NET 3.5 07 Programación orientada a objetos
Cesar adrian barrios alarcon unidad 2
Publicidad

Último (20)

PDF
Perfilaje de Pozos _20250624_222013_0000.pdf
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
PPTX
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
PDF
Primera formulación de cargos de la SEC en contra del CEN
DOCX
Cumplimiento normativo y realidad laboral
PDF
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
PPTX
Gestion de seguridad y salud ocupacional.pptx
PPTX
clase MICROCONTROLADORES ago-dic 2019.pptx
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PPTX
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
PPT
357161027-seguridad-industrial-diapositivas-ppt.ppt
PPTX
Manual ISO9001_2015_IATF_16949_2016.pptx
PDF
1132-2018 espectrofotometro uv visible.pdf
PDF
Módulo-de Alcance-proyectos - Definición.pdf
PDF
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
Perfilaje de Pozos _20250624_222013_0000.pdf
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
CAPACITACIÓN DE USO ADECUADO DE EPP.pptx
Primera formulación de cargos de la SEC en contra del CEN
Cumplimiento normativo y realidad laboral
Copia de Presentación Propuesta de Marketing Corporativo Blanco y Negro.pdf
Gestion de seguridad y salud ocupacional.pptx
clase MICROCONTROLADORES ago-dic 2019.pptx
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
TESTAMENTO DE DESCRIPTIVA ..............
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
357161027-seguridad-industrial-diapositivas-ppt.ppt
Manual ISO9001_2015_IATF_16949_2016.pptx
1132-2018 espectrofotometro uv visible.pdf
Módulo-de Alcance-proyectos - Definición.pdf
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP

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.