Resumen completo de refactorización

1. La "refactorización" cambia la forma en que se diseña el diseño orientado a objetos

1. Mejorar el diseño del software (organizar el código)
2. Mejorar la calidad y legibilidad del código, haciendo que los sistemas de software sean más fáciles de entender y mantener
3. Ayudar a encontrar errores lo antes posible
4. Mejorar la velocidad de programación

Mejorar el diseño, mejorar la legibilidad y reducir los errores se trata de permanecer en el suelo. Un buen diseño es la mitad de la batalla, detenerse a mejorar el diseño a través de la refactorización puede ralentizar la velocidad en la actualidad, pero las ventajas que trae no se pueden subestimar.

2. Escribir código 22 pecados capitales

  1. Código duplicado Código duplicado
  2. Método largo función demasiado larga
  3. Clase grande Clase demasiado grande
  4. Lista de parámetros larga Lista de parámetros demasiado larga
  5. Cambio divergente cambio divergente (enfoque relativo)
  6. Cirugía de escopeta Modificación de escopeta
  7. Gráfico adjunto de envidia de características
  8. Grupos de datos
  9. Obsesión primitiva paranoia de tipo básico
  10. Switch Statement (Surge el horror de Switch)
  11. Sistema de herencia equilibrado de jerarquías de herencia paralelas
  12. Lazy Class (clase redundante)
  13. Generalidad especulativa
  14. Campo temporal (campo de valor temporal confuso)
  15. hombre medio
  16. intimidad inapropiada
  17. Clases alternativas con diferentes interfaces
  18. Clase de biblioteca incompleta (clase de biblioteca incompleta)
  19. Extensión local (introducir extensión local).
  20. Clase de datos (clase de datos ingenuos)
  21. Legado rechazado

3. Nueve formas de reorganizar funciones

  1. Función de extracción del método de extracción
  2. Función en línea del método en línea
  3. Variable temporal en línea temporal en línea
  4. Reemplazar Temp con Query para reemplazar variables temporales con consultas
  5. Introducir variable explicativa introduce variables explicativas
  6. Dividir variable temporal descompone variables temporales
  7. Quitar asignaciones a parámetros Quitar asignaciones a parámetros
  8. Reemplazar método con objeto de método El objeto de función reemplaza la función
  9. Sustituir Algoritmo Reemplazo de algoritmo

4. Ocho métodos para mover propiedades entre objetos

  1. Función de movimiento Move Method
  2. Mover campo mover campo
  3. Extraer clase
  4. Clase en línea en línea la clase
  5. Ocultar delegado oculta la relación de delegación
  6. Quitar intermediario Quitar intermediario
  7. Introducir método extranjero introduce funciones adicionales
  8. Introducir extensión local introducir extensión local

5. 16 formas de reorganizar datos

  1. Campo autoencapsulado Campo autoencapsulado
  2. Reemplazar valor de datos con objeto objeto reemplaza el valor de datos
  3. Cambiar valor a referencia Cambiar objeto de valor a objeto de referencia
  4. Cambiar referencia a valor Cambiar el objeto de referencia al objeto de valor
  5. Reemplazar matriz con objeto para reemplazar una matriz con un objeto
  6. Duplicar datos observados Duplicar los datos monitoreados
  7. Cambiar asociación unidireccional a bidireccional Cambiar una asociación unidireccional a una asociación bidireccional
  8. Cambiar asociación bidireccional a unidireccional Cambiar asociación bidireccional a asociación unidireccional
  9. Reemplazar número mágico con constante simbólica La constante literal reemplaza el número mágico
  10. Encapsular campo de paquete de campo
  11. Encapsular la colección de paquetes Coolection
  12. Reemplazar registro con clase de datos para reemplazar registros con clases de datos
  13. Reemplazar código de tipo con clase para reemplazar código de tipo con clase
  14. Reemplazar código de tipo con subclases para reemplazar el código de tipo con subclases
  15. Reemplazar código de tipo con estado/estrategia para reemplazar el código de tipo con estado/estrategia
  16. Reemplazar subclase con campos Reemplazar subclases con campos

6. Simplificar expresiones condicionales

  1. Descomponer Descomposición condicional expresión condicional
  2. Consolidar expresión condicional
  3. Consolodate fragmentos condicionales duplicados Fusionar fragmentos condicionales duplicados
  4. Eliminar indicador de control eliminar indicador de control
  5. Reemplazar condicional anidado con cláusulas de protección para reemplazar expresiones condicionales anidadas con cláusulas de protección
  6. Reemplazar condicional con polimorfismo para reemplazar expresiones condicionales con polimorfismo
  7. Introducir objeto nulo introduce objeto nulo
  8. Introducir aserción introducir aserción

7. Simplifique las llamadas a funciones

  1. Cambiar el nombre de la función de método cambiar el nombre
  2. Añadir parámetro Añadir parámetro
  3. Eliminar parámetro Eliminar parámetro
  4. Separar consulta de modificador separa la función de consulta de la función de modificación
  5. Parametrizar método hace que la función lleve parámetros
  6. Reemplazar parámetro con métodos explícitos para reemplazar parámetros con funciones explícitas
  7. Conservar todo el objeto mantiene el objeto intacto
  8. Reemplazar parámetro con métodos Reemplazar parámetros con funciones
  9. Introducir objeto de parámetro introducir objeto de parámetro
  10. Eliminar configuración Método Eliminar función de configuración
  11. Ocultar método ocultar función
  12. Reemplazar constructor con método de fábrica Reemplazar constructor con función de fábrica
  13. Encapsular Downcast encapsulación down transformación
  14. Reemplazar código de error con excepción Reemplazar código de error con excepción
  15. Reemplazar excepción con prueba para reemplazar excepción con prueba

8. Tratar con relaciones generalizadas

  1. El campo Pull Up Field se mueve hacia arriba
  2. La función de método de extracción se movió hacia arriba
  3. Levantar el cuerpo del constructor Mover hacia arriba el cuerpo del constructor
  4. Empuje hacia abajo Función de método hacia abajo
  5. Empuje hacia abajo el campo FieldId hacia abajo
  6. Extraer subclase extraer subclase
  7. Extraer superclase Extraer superclase
  8. Extraer interfaz Extraer interfaz
  9. Contraer jerarquía Contraer sistema de herencia
  10. De la función de plantilla de forma del método Template
  11. Reemplazar herencia con delegación Reemplazar herencia con delegación
  12. Reemplazar delegación con herencia para reemplazar delegación con herencia

9. Refactorización a gran escala

  1. Separar la herencia Clasificar y descomponer el sistema de herencia
  2. Convertir diseño procedimental en objetos Convertir diseño procedimental en diseño de objetos
  3. Separar el dominio de la presentación separa el dominio de la presentación/pantalla
  4. Extraer sistema de herencia de extracción de jerarquía

Supongo que te gusta

Origin blog.csdn.net/qq_43148810/article/details/128937969
Recomendado
Clasificación