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

Más contenido relacionado

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

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 polimorfismoAngel Vázquez Patiño
 
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 objetosJosé 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 4K 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 4K Manuel TN
 
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 relacionadoJuan Carlos Espinoza
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
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 objetosAndres Herrera Rodriguez
 
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 objetosAntonio 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
 
Code Smell
Code SmellCode Smell
Code Smellavature
 

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

La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfAnthony Gualpa
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfDarwinJPaulino
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)CristianSalas68
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejerciciosEfrain Yungan
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfAuraGabriela2
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdfnurix_15
 
La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionnewspotify528
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaCulturaGeneral1
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)esmerling14
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEfrain Yungan
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasJilvertHuisaCenteno
 

Último (20)

La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdf
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
 
presentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafilpresentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafil
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)Estabilización de suelos (Física, Química y Mecánica)
Estabilización de suelos (Física, Química y Mecánica)
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicios
 
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdfPRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
PRIMER Y SEGUNDO TEOREMA DE CASTIGLIANO.pdf
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
 
La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacion
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA Colombia
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
 
Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitarias
 

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.