Réduire la hiérarchie.
Vous avez une hiérarchie de classes dans laquelle une sous-classe est pratiquement identique à sa superclasse.
Fusionnez la sous-classe et la superclasse.
##Example
##Why Refactor
Votre programme a grandi avec le temps et une sous-classe et une superclasse sont devenues pratiquement identiques. Une fonctionnalité a été retirée d’une sous-classe, une méthode a été déplacée vers la superclasse... et vous vous retrouvez maintenant avec deux classes qui se ressemblent.
##Benefits
-
La complexité du programme est réduite. Moins de classes signifie moins de choses à garder à l’esprit et moins de pièces mobiles susceptibles de casser lors de futures modifications du code.
-
Naviguer dans votre code est plus simple lorsque les méthodes sont définies tôt dans une seule classe. Vous n’avez pas besoin de parcourir toute la hiérarchie pour trouver une méthode donnée.
##How to Refactor
-
Choisissez la classe qui est la plus simple à supprimer : la superclasse ou sa sous-classe.
-
Utilisez Remonter un champ et Remonter une méthode si vous décidez de vous débarrasser de la sous-classe. Si vous choisissez d’éliminer la superclasse, optez pour Descendre un champ et Descendre une méthode.
-
Remplacez toutes les utilisations de la classe que vous supprimez par la classe vers laquelle les champs et les méthodes vont être migrés. Il s’agira souvent du code de création des classes, du typage des variables et des paramètres, ainsi que de la documentation dans les commentaires de code.
-
Supprimez la classe vide.