Remonter le champ.
Deux classes possèdent le même champ.
Supprimez le champ des sous-classes et déplacez-le vers la super-classe.
##Exemple
class Employee {}
class Salesman extends Employee {
String name;
}
class Engineer extends Employee {
String name;
}class Employee {
String name;
}
class Salesman extends Employee {}
class Engineer extends Employee {}##Pourquoi refactoriser
Les sous-classes ont grandi et évolué séparément, faisant apparaître des champs et des méthodes identiques (ou presque identiques).
##Avantages
-
Élimine la duplication des champs dans les sous-classes.
-
Facilite le déplacement ultérieur des méthodes dupliquées, si elles existent, des sous-classes vers une super-classe.
##Comment refactoriser
-
Assurez-vous que les champs servent aux mêmes besoins dans les sous-classes.
-
Si les champs portent des noms différents, donnez-leur le même nom et remplacez toutes les références aux champs dans le code existant.
-
Créez un champ portant le même nom dans la super-classe. Notez que si les champs étaient privés, le champ de la super-classe doit être protégé (protected).
-
Supprimez les champs des sous-classes.
-
Vous pouvez envisager d'utiliser Auto-encapsuler le champ pour le nouveau champ, afin de le masquer derrière des méthodes d'accès.