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.