Résumé complet de la refactorisation

1. La "refactorisation" change la façon dont la conception orientée objet

1. Améliorer la conception du logiciel (organiser le code)
2. Améliorer la qualité et la lisibilité du code, rendant les systèmes logiciels plus faciles à comprendre et à entretenir
3. Aider à trouver les erreurs le plus tôt possible
4. Améliorer la vitesse de programmation

Améliorer la conception, améliorer la lisibilité et réduire les bugs consistent à rester sur le terrain. Un bon design est la moitié de la bataille. Arrêter d'améliorer le design par le refactoring peut ralentir la vitesse à l'heure actuelle, mais les avantages que cela apporte ne peuvent être sous-estimés.

2. Écrire le code 22 péchés capitaux

  1. Code dupliqué Code dupliqué
  2. Méthode longue fonction trop longue
  3. Grande classe classe trop grande
  4. Liste de paramètres longue Liste de paramètres trop longue
  5. Changement divergent changement divergent (concentration relative)
  6. Chirurgie du fusil de chasse Modification du fusil de chasse
  7. Caractéristique Envy Attachment Plot
  8. Blocs de données
  9. Obsession primitive paranoïa de type basique
  10. Switch Statement (Switch Horror sort)
  11. Hiérarchies d'héritage parallèles système d'héritage équilibré
  12. Classe paresseuse (classe redondante)
  13. Généralité spéculative
  14. Champ temporaire (champ de valeur temporaire déroutant)
  15. Homme du milieu
  16. Intimité inappropriée
  17. Classes alternatives avec différentes interfaces
  18. Classe de bibliothèque incomplète (classe de bibliothèque incomplète)
  19. Extension locale (introduire l'extension locale).
  20. Classe de données (classe de données naïve)
  21. Legs refusé

3. Neuf façons de réorganiser les fonctions

  1. Fonction d'extraction de méthode d'extraction
  2. Fonction en ligne de la méthode en ligne
  3. Inline Temp variable temporaire en ligne
  4. Remplacez Temp par Query pour remplacer les variables temporaires par des requêtes
  5. Introduire la variable explicative introduit les variables explicatives
  6. Diviser la variable temporaire décompose les variables temporaires
  7. Supprimer les affectations aux paramètres Supprimer les affectations aux paramètres
  8. Remplacer la méthode par l'objet méthode L'objet fonction remplace la fonction
  9. Algorithme de substitution Remplacement d'algorithme

4. Huit méthodes de déplacement de propriétés entre objets

  1. Déplacer la fonction de déplacement de la méthode
  2. Déplacer le champ déplacer le champ
  3. Extraire la classe
  4. Inline Class inline la classe
  5. Masquer le délégué masque la relation de délégation
  6. Supprimer l'homme du milieu supprimer l'homme du milieu
  7. Introduce Foreign Method introduit des fonctions supplémentaires
  8. Introduire l'extension locale introduire l'extension locale

5. 16 façons de réorganiser les données

  1. Champ auto-encapsulant Champ auto-encapsulant
  2. Remplacer la valeur de données par un objet objet remplace la valeur de données
  3. Changer la valeur en référence Changer l'objet de valeur en objet de référence
  4. Changer la référence en valeur Changer l'objet de référence en objet de valeur
  5. Remplacer le tableau par un objet pour remplacer un tableau par un objet
  6. Dupliquer les données observées Dupliquer les données surveillées
  7. Changer l'association unidirectionnelle en bidirectionnelle Changer une association unidirectionnelle en association bidirectionnelle
  8. Changer l'association bidirectionnelle en unidirectionnelle Changer l'association bidirectionnelle en association unidirectionnelle
  9. Remplacer le nombre magique par une constante symbolique La constante littérale remplace le nombre magique
  10. Champ de package Encapsulate Field
  11. Encapsuler la collection de packages Coolection
  12. Remplacer l'enregistrement par la classe de données pour remplacer les enregistrements par des classes de données
  13. Remplacer le code de type par la classe pour remplacer le code de type par la classe
  14. Remplacer le code de type par des sous-classes pour remplacer le code de type par des sous-classes
  15. Remplacer le code de type par l'état/la stratégie pour remplacer le code de type par l'état/la stratégie
  16. Remplacer la sous-classe par Fieldls Remplacer les sous-classes par des champs

6. Simplifiez les expressions conditionnelles

  1. Décomposer Expression conditionnelle de décomposition conditionnelle
  2. Consolider l'expression conditionnelle
  3. Consolider les fragments conditionnels en double Fusionner les fragments conditionnels en double
  4. Supprimer l'indicateur de contrôle supprimer l'indicateur de contrôle
  5. Remplacer les conditions imbriquées par des clauses de garde pour remplacer les expressions conditionnelles imbriquées par des clauses de garde
  6. Remplacer conditionnel par polymorphisme pour remplacer les expressions conditionnelles par polymorphisme
  7. Introduire un objet nul introduit un objet nul
  8. Introduire l'assertion introduire l'assertion

7. Simplifiez les appels de fonction

  1. Renommer la fonction de méthode renommer
  2. Ajouter un paramètre Ajouter un paramètre
  3. Supprimer le paramètre Supprimer le paramètre
  4. Séparer la requête du modificateur sépare la fonction de requête de la fonction de modification
  5. Parameterize Method fait que la fonction porte des paramètres
  6. Remplacer le paramètre par des méthodes explicites pour remplacer les paramètres par des fonctions explicites
  7. Conserver l'objet entier conserve l'objet intact
  8. Remplacer le paramètre par des méthodes Remplacer les paramètres par des fonctions
  9. Introduire l'objet paramètre introduire l'objet paramètre
  10. Supprimer la méthode de réglage Supprimer la fonction de réglage
  11. Masquer la fonction de masquage de la méthode
  12. Remplacer le constructeur par la méthode d'usine Remplacer le constructeur par la fonction d'usine
  13. Encapsuler Downcast encapsulation down transformation
  14. Remplacer le code d'erreur par une exception Remplacer le code d'erreur par une exception
  15. Remplacer l'exception par le test pour remplacer l'exception par le test

8. Gérer les relations généralisées

  1. Le champ Pull Up Field se déplace vers le haut
  2. Fonction Pull up Method déplacée vers le haut
  3. Tirez vers le haut le corps du constructeur Déplacez le corps du constructeur vers le haut
  4. Pousser vers le bas la fonction Méthode vers le bas
  5. Déroulez le champ FieldId vers le bas
  6. Extraire la sous-classe extrait la sous-classe
  7. Extraire la super classe Extraire la super classe
  8. Extraire l'interface Extraire l'interface
  9. Réduire la hiérarchie Réduire le système d'héritage
  10. À partir de la fonction de modèle de forme de la méthode TempPlate
  11. Remplacer l'héritage par la délégation Remplacer l'héritage par la délégation
  12. Remplacer délégation par Héritage pour remplacer délégation par héritage

9. Refactorisation à grande échelle

  1. Démêler l'héritage Trier et décomposer le système d'héritage
  2. Convertir la conception procédurale en objets Convertir la conception procédurale en conception d'objet
  3. Séparer le domaine de la présentation sépare le domaine de la présentation/affichage
  4. Système d'héritage d'extrait de hiérarchie d'extraction

Guess you like

Origin blog.csdn.net/qq_43148810/article/details/128937969