Extraire une superclasse.
Vous avez deux classes qui partagent des champs et des méthodes communs.
Créez une superclasse commune pour elles et déplacez-y tous les champs et méthodes identiques.
##Example
##Why Refactor
Un type de duplication de code se produit lorsque deux classes accomplissent des tâches similaires de la même manière, ou accomplissent des tâches similaires de manières différentes. Les objets offrent un mécanisme intégré pour simplifier de telles situations grâce à l’héritage. Mais bien souvent, cette similarité passe inaperçue jusqu’à ce que les classes soient créées, ce qui oblige à mettre en place une structure d’héritage par la suite.
##Benefits
- Déduplication du code. Les champs et méthodes communs « vivent » désormais à un seul endroit.
##How to Refactor
-
Créez une superclasse abstraite.
-
Utilisez Remonter un champ, Remonter une méthode et Remonter le corps du constructeur pour déplacer les fonctionnalités communes vers une superclasse. Commencez par les champs, car en plus des champs communs, vous devrez déplacer les champs utilisés dans les méthodes communes.
-
Recherchez dans le code client les endroits où l’utilisation des sous-classes peut être remplacée par votre nouvelle classe (comme dans les déclarations de type).