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
- Code dupliqué Code dupliqué
- Méthode longue fonction trop longue
- Grande classe classe trop grande
- Liste de paramètres longue Liste de paramètres trop longue
- Changement divergent changement divergent (concentration relative)
- Chirurgie du fusil de chasse Modification du fusil de chasse
- Caractéristique Envy Attachment Plot
- Blocs de données
- Obsession primitive paranoïa de type basique
- Switch Statement (Switch Horror sort)
- Hiérarchies d'héritage parallèles système d'héritage équilibré
- Classe paresseuse (classe redondante)
- Généralité spéculative
- Champ temporaire (champ de valeur temporaire déroutant)
- Homme du milieu
- Intimité inappropriée
- Classes alternatives avec différentes interfaces
- Classe de bibliothèque incomplète (classe de bibliothèque incomplète)
- Extension locale (introduire l'extension locale).
- Classe de données (classe de données naïve)
- Legs refusé
3. Neuf façons de réorganiser les fonctions
- Fonction d'extraction de méthode d'extraction
- Fonction en ligne de la méthode en ligne
- Inline Temp variable temporaire en ligne
- Remplacez Temp par Query pour remplacer les variables temporaires par des requêtes
- Introduire la variable explicative introduit les variables explicatives
- Diviser la variable temporaire décompose les variables temporaires
- Supprimer les affectations aux paramètres Supprimer les affectations aux paramètres
- Remplacer la méthode par l'objet méthode L'objet fonction remplace la fonction
- Algorithme de substitution Remplacement d'algorithme
4. Huit méthodes de déplacement de propriétés entre objets
- Déplacer la fonction de déplacement de la méthode
- Déplacer le champ déplacer le champ
- Extraire la classe
- Inline Class inline la classe
- Masquer le délégué masque la relation de délégation
- Supprimer l'homme du milieu supprimer l'homme du milieu
- Introduce Foreign Method introduit des fonctions supplémentaires
- Introduire l'extension locale introduire l'extension locale
5. 16 façons de réorganiser les données
- Champ auto-encapsulant Champ auto-encapsulant
- Remplacer la valeur de données par un objet objet remplace la valeur de données
- Changer la valeur en référence Changer l'objet de valeur en objet de référence
- Changer la référence en valeur Changer l'objet de référence en objet de valeur
- Remplacer le tableau par un objet pour remplacer un tableau par un objet
- Dupliquer les données observées Dupliquer les données surveillées
- Changer l'association unidirectionnelle en bidirectionnelle Changer une association unidirectionnelle en association bidirectionnelle
- Changer l'association bidirectionnelle en unidirectionnelle Changer l'association bidirectionnelle en association unidirectionnelle
- Remplacer le nombre magique par une constante symbolique La constante littérale remplace le nombre magique
- Champ de package Encapsulate Field
- Encapsuler la collection de packages Coolection
- Remplacer l'enregistrement par la classe de données pour remplacer les enregistrements par des classes de données
- Remplacer le code de type par la classe pour remplacer le code de type par la classe
- Remplacer le code de type par des sous-classes pour remplacer le code de type par des sous-classes
- Remplacer le code de type par l'état/la stratégie pour remplacer le code de type par l'état/la stratégie
- Remplacer la sous-classe par Fieldls Remplacer les sous-classes par des champs
6. Simplifiez les expressions conditionnelles
- Décomposer Expression conditionnelle de décomposition conditionnelle
- Consolider l'expression conditionnelle
- Consolider les fragments conditionnels en double Fusionner les fragments conditionnels en double
- Supprimer l'indicateur de contrôle supprimer l'indicateur de contrôle
- Remplacer les conditions imbriquées par des clauses de garde pour remplacer les expressions conditionnelles imbriquées par des clauses de garde
- Remplacer conditionnel par polymorphisme pour remplacer les expressions conditionnelles par polymorphisme
- Introduire un objet nul introduit un objet nul
- Introduire l'assertion introduire l'assertion
7. Simplifiez les appels de fonction
- Renommer la fonction de méthode renommer
- Ajouter un paramètre Ajouter un paramètre
- Supprimer le paramètre Supprimer le paramètre
- Séparer la requête du modificateur sépare la fonction de requête de la fonction de modification
- Parameterize Method fait que la fonction porte des paramètres
- Remplacer le paramètre par des méthodes explicites pour remplacer les paramètres par des fonctions explicites
- Conserver l'objet entier conserve l'objet intact
- Remplacer le paramètre par des méthodes Remplacer les paramètres par des fonctions
- Introduire l'objet paramètre introduire l'objet paramètre
- Supprimer la méthode de réglage Supprimer la fonction de réglage
- Masquer la fonction de masquage de la méthode
- Remplacer le constructeur par la méthode d'usine Remplacer le constructeur par la fonction d'usine
- Encapsuler Downcast encapsulation down transformation
- Remplacer le code d'erreur par une exception Remplacer le code d'erreur par une exception
- Remplacer l'exception par le test pour remplacer l'exception par le test
8. Gérer les relations généralisées
- Le champ Pull Up Field se déplace vers le haut
- Fonction Pull up Method déplacée vers le haut
- Tirez vers le haut le corps du constructeur Déplacez le corps du constructeur vers le haut
- Pousser vers le bas la fonction Méthode vers le bas
- Déroulez le champ FieldId vers le bas
- Extraire la sous-classe extrait la sous-classe
- Extraire la super classe Extraire la super classe
- Extraire l'interface Extraire l'interface
- Réduire la hiérarchie Réduire le système d'héritage
- À partir de la fonction de modèle de forme de la méthode TempPlate
- Remplacer l'héritage par la délégation Remplacer l'héritage par la délégation
- Remplacer délégation par Héritage pour remplacer délégation par héritage
9. Refactorisation à grande échelle
- Démêler l'héritage Trier et décomposer le système d'héritage
- Convertir la conception procédurale en objets Convertir la conception procédurale en conception d'objet
- Séparer le domaine de la présentation sépare le domaine de la présentation/affichage
- Système d'héritage d'extrait de hiérarchie d'extraction